Notification de fin de téléchargement

Notification de fin de téléchargement - PHP - Programmation

Marsh Posté le 29-05-2006 à 15:56:22    

:hello:

 

Je dois faire un système de téléchargement de fichier et je dois absolument envoier des données une fois que le téléchargement est fini et surtout pas avant.
Afin de savoir si le téléchargement c'est produit sans problème ou non.

 

Pour l'instant j'utilise le système des headers :

Code :
  1. header("Content-Length: ".filesize($file));
  2. header("Content-Type: video/3gpp" );
  3. header("Content-Transfer-Encoding: binary" );
  4. echo file_get_contents($file);
 

Maintenant il faudrait que je puisse savoir quand le client à fini de recevoir les données.
(Si j'ai bien compris PHP, une page n'est envoyé sur le post client qu'une fois que le serveur à fini de la générer entierement)

 

1°) y a t'il un moyen de dire au serveur que pour cette page, il doit envoyé les données octets par octets sans attendre de tous les avoir ?
pour faire un truc du genre

 
Code :
  1. header("Content-Length: ".filesize($file));
  2. header("Content-Type: video/3gpp" );
  3. header("Content-Transfer-Encoding: binary" );
  4. echo file_get_contents($file);
  5. log("telechargement fini" );
 

2°) le client envoit il une requete/un truc au serveur que je pourrais capturer ?

 

3°) quelqu'un aurait il une idée de comment faire autrement ?

Reply

Marsh Posté le 29-05-2006 à 15:56:22   

Reply

Marsh Posté le 29-05-2006 à 16:07:50    

Reply

Marsh Posté le 29-05-2006 à 16:19:57    

ok merci je regarde ca desuite :)

Reply

Marsh Posté le 29-05-2006 à 16:52:25    

Bon je n'ai pas trés bien compris cette histoire de php://output
(quand j'ai fais des tests avec un fichier de 16Mo ca a toujours bloqué a 12,9Mo)

 

Maintenant je fais :
 

Code :
  1. ignore_user_abort(true); //this way, the user can stop the output, but not the script.
  2.    
  3.     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  4.     header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  5.     header('Cache-Control: no-cache, private, must-revalidate');
  6.     header("Content-Length: ".filesize($file));
  7.     header("Content-Type: video/3gpp" );
  8.     header("Content-Transfer-Encoding: binary" );
  9.     $hin = fopen($file,"rb" );
  10.     /* CA BLOQUE AU BOUT D'UN MOMENT
  11.     $hout = fopen('php://output', 'wb');
  12.     stream_set_write_buffer($hout, 0);
  13.     while (!feof($hin) && (connection_status() == 0)) {
  14.         fputs($hout, fread($hin, 1));
  15.     }*/
  16.    
  17.     while (!feof($hin) && (connection_status() == 0) ) {
  18.         print(fread($hin, 64));
  19.        
  20.         flush();
  21.         ob_flush();
  22.     }
  23.    
  24.     fclose($handle);
 

voila j'en suis la je continu de chercher pour la version avec php://output marche pas :)

Reply

Marsh Posté le 29-05-2006 à 18:04:32    

hum ca marche trés bien sous firefox mais pas pour les téléphone portables :'(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed