Détruire un fichier après qu'il ait été téléchargé - PHP - Programmation
Marsh Posté le 12-03-2012 à 10:28:46
C bon, j'ai trouvé
Marsh Posté le 12-03-2012 à 13:02:30
Tu pourrais poster ta solution, ça m'intéresse, svp
Marsh Posté le 12-03-2012 à 15:48:20
$name="nom_du_fichier";
$f="mon_repertoire/".$name;
$fo = fopen($f, 'rb') ;
$content = fread($fo, filesize($f)) ;
fclose($fo) ;
header("Content-Type: application/octet-stream" );
header("Content-Length: " . strlen($content));
header("Content-Disposition: attachment; filename=\"".$name."\"" );
echo $content;
unlink($f);
Marsh Posté le 12-03-2012 à 16:14:55
J'ai comme l'impression que ton script posera problème si ton fichier est trop gros.
Faudrait ptête bufferiser par petits morceaux, ou laisser Apache s'occuper de l'upload.
Marsh Posté le 13-03-2012 à 09:40:44
c'est ce que je me dis aussi. Si ton fichier fait plusieurs 100ène de Mo, tu vas te prendre un timeout du script php (en général, 30s)...
Marsh Posté le 13-03-2012 à 10:45:44
Pas si tu héberges toi même
Marsh Posté le 13-03-2012 à 11:27:49
format_c a écrit : Pas si tu héberges toi même |
Ben tu mets quand même bien un timeout pour le temps d'exécution des scripts php, sinon, tu t'exposes à des pbs (genre un script qui par en vrille dans une boucle infinie) Donc même si t'as mis un gros timeout, si en face qq'un à une petite connexion, il pourra être confronté au pb...
Marsh Posté le 13-03-2012 à 11:33:29
sauf si tu sais que ca depassera jamais 1-10mo maius bon
ca reste un bricolage
Marsh Posté le 13-03-2012 à 11:35:35
dans le genre bricolage : quand l'user demande un DL, tu bouge le fichier dans un repertoire temp, et tu lui propose le DL
le repertoire temp est en // parcouru tous les x heures par un batch qui supprime s'il ca fait + de x heures qu'il est la.
Marsh Posté le 13-03-2012 à 11:47:36
rufo a écrit : |
J'ai fait une limite de taille des fichiers à 1GO et la limite d'excecution des scripts est de 4 heures.
Ca laisse de la marge
Marsh Posté le 13-03-2012 à 12:02:55
1 Go en 4h, y'a plein de monde pour qui ça va pas le faire (ceux dans les campagnes ou loin du NRA...). Et ça va dépendre aussi, de ton côté, du nb de personnes qui téléchargent en // et du débit que tu offres
Marsh Posté le 13-03-2012 à 13:34:34
Ca fait quand même 70 ko/sec pour telecharger 1Go en 4 heures, ce qui est finallement assez raisonnable. Niveau débit j'offre 12MO/sec, ce qui permet de nourrir pas mal de monde. Si jamais mon débit s'avère insuffisant, ce sera une excellente nouvelle, mais bon, on peut tjrs réver
Marsh Posté le 06-03-2012 à 14:11:55
Bonjour
Je recherche un moyen (pas forcément par PHP d'ailleurs) pour détruire un fichier une fois qu'il a été téléchargé.
je place par exemple mon fichier sur un serveur, un client vient le récupérer, et une fois qu'il a été complètement téléchargé, il est effacé.
Si vous aviez une méthode pour faire ceci, ça serait tout bonnement génial.
---------------
Mes guitares, ampli, et effets sont en vente !