Comment puis-je afficher un compteur qui compte le nombre de fois qu'un fichier est téléchargé? Je l'ai déjà vu. "Téléchargé 450 fois". Merci.PHP - Nombre de fois téléchargé
Répondre
Ne laissez pas l'utilisateur de télécharger un fichier directement, mais cuvette d'un script comme suit ...
<?php
$file = $_REQUEST['file'];
$dldir = "downloads/";
if (
(file_exists($dldir.$file) && // file exists
(strpos($file, "../") === false) && // prevent an attacker from switching to a parent directory
) {
header('Content-type: '.mime_content_type($dldir.file));
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($dldir.$file) ."; ");
header('Content-Disposition: attachment; filename="'.$file.'"');
echo file_get_contents($dldir.$file);
/** Update the counter here, e.g. by using mysql **/
} else {
die("File not found");
}
?>
Veillez également à ne pas autoriser le téléchargement de fichiers tels que/etc/passwd lors de la création de scripts de téléchargement personnalisés. – Kaivosukeltaja
Je voudrais spécifier quel dossier pour obtenir un fichier, ne laissez pas (comme Kaivos .. dit) utilisateurs détourner un fichier de vous comme/etc/passwd – Jakub
Droit ... J'ai ajouté du code pour empêcher cela. – ty812
Si vous voulez le faire avec PHP, vous devez contrôler le téléchargement dans un script PHP. Fondamentalement, il se résume à deux lignes de pseudo-code suivant:
set_number_of_downloads(get_number_of_downloads() + 1);
readfile($file_being_downloaded);
sur Apache vous pourriez avoir mod_rewrite mettre à jour une base de données lorsque le fichier est demandé. Cela a l'avantage de la rapidité d'envoi (sendfile peut être utilisé), et vous n'avez pas besoin de changer vos URL ou structure de répertoire.
#!/usr/bin/perl
$| = 1;
$dbh = DBI->connect("dbi:mysql:database=; host=localhost; user=; password=")
or die "Connecting from PHP to MySQL database failed: $DBI::errstr";
while (<STDIN>) {
$dbh->query(... update database ...);
print $_;
}
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteengine
- 1. php trouver nombre d'occurrences (nombre de fois)
- 2. Comment savoir combien de fois un fichier a été téléchargé?
- 3. Comment calculer le nombre de fois qu'un fichier a été téléchargé
- 4. silverlight XAP est téléchargé à chaque fois
- 5. Nombre de fois qu'une classe PHP est créée
- 6. Renommer le fichier téléchargé en PHP
- 7. Nombre de lignes SQLBulkCopy une fois rempli
- 8. PHP: Nombre de Nombre de tableaux dans SESSION
- 9. en utilisant fopen sur le fichier téléchargé avec php
- 10. i nombre entier ne +1 + 1ère fois
- 11. PHP: montrer deux fois
- 12. PHP - Nombre de virgules dans la chaîne
- 13. Remplacer l'espace en tête avec avec un même nombre de fois en utilisant PHP regex
- 14. PHP: compte combien de fois un nombre apparaît dans un tableau?
- 15. Comment obtenir le nombre de fois qu'une chaîne est répétée dans PHP
- 16. L'exportation PHP vers Excel s'ouvre deux fois
- 17. Nombre Nombre d'avertissements et d'avertissements PHP
- 18. wget retourner le nom de fichier téléchargé
- 19. PHP. "INSERT INTO" s'exécute deux fois via PHP mysqli_query!
- 20. Traitement du nombre PHP
- 21. PHP lu à partir du fichier texte téléchargé?
- 22. Installation d'un nouveau paquet php téléchargé Serveur ubuntu
- 23. php pagination classe que je téléchargé me donne des erreurs
- 24. Conversion automatique de fichiers audio WAV en MP3 sur un serveur une fois téléchargé?
- 25. Renommez un fichier téléchargé avec PHP mais gardez l'extension
- 26. regex: expression correspondant même nombre inconnu de fois
- 27. SELECT seulement un certain nombre de lignes à la fois
- 28. métacaractères intérieur un nombre illimité de fois en modèle externe
- 29. Eclipse - Nombre de fois compilé sur le projet?
- 30. form.fields_for faire pour un nombre fini de fois
Pls nous savoir ce que vous avez essayé jusqu'à présent. – KB22