kenji Posted October 3, 2005 Share Posted October 3, 2005 bonjour, voila j'ai ce code : header("Content-disposition: attachment; filename=$filename"); header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($filename)); header("Pragma: no-cache"); header("Expires: 0"); readfile($filename); il fonctionne parfaitement sur un dedie en php4 par contre sur un autre dedie en php5, le telechargement se bloque a 2 mo apres multiples recherche dans le fichier php.ini rien n'y fait j'ai fait le test sur un mutualise ou le problème et le meme http://90pack.ovh.net/~mostik/ le fichier dl.php et dl.php5 sont identiques, seule l'extention a ete change resultat : le fichier dl.php fonctionne parfaitement le fichier dl.php5 ne fonctionne pas , le telechargement est bloque a 2 mo exactement comme sur mon dedie auriez vous une idee ? merci Link to comment Share on other sites More sharing options...
savory Posted October 3, 2005 Share Posted October 3, 2005 Ca ressemble à un probleme de config du memory_limit dans le php.ini de php5. Si tu ne veux pas avoir ce genre de probleme je te conseille de tronquer ton readfile avec un feof/echo. Plusieurs exemples sur http://php.net/readfile Link to comment Share on other sites More sharing options...
kenji Posted October 4, 2005 Author Share Posted October 4, 2005 merci je vais jeter un oeil la dessus Link to comment Share on other sites More sharing options...
kenji Posted October 5, 2005 Author Share Posted October 5, 2005 bon finalement le code pour que cela fonctinne est celui ci : <?php if(isset($_GET["file"])){$file = $_GET["file"]; } function dl_file_resume($file){ //First, see if the file exists if (!is_file($file)) { die("<b>404 File not found!</b>"); } //Gather relevent info about file $len = filesize($file); $filename = basename($file); $file_extension = strtolower(substr(strrchr($filename,"."),1)); $ctype="application/force-download"; //Begin writing headers header("Cache-Control:"); header("Cache-Control: public"); //Use the switch-generated Content-Type header("Content-Type: $ctype"); //if your filename contains underscores, you can replace them with spaces header("Content-disposition: attachment; filename=$filename"); header($header ); header("Accept-Ranges: bytes"); header("Content-Transfer-Encoding: binary"); $size=filesize($file); //check if http_range is sent by browser (or download manager) if(isset($_SERVER['HTTP_RANGE'])) { list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']); //if yes, download missing part str_replace($range, "-", $range); $size2=$size-1; $new_length=$size2-$range; header("HTTP/1.1 206 Partial Content"); header("Content-Length: $new_length"); header("Content-Range: bytes $range$size2/$size"); }else{ $size2=$size-1; header("Content-Range: bytes 0-$size2/$size"); header("Content-Length: ".$size2); } //open the file $fp=fopen("$file","r"); //seek to start of missing part fseek($fp,$range); //start buffered download while(!feof($fp)){ //reset time limit for big files set_time_limit(0); print(fread($fp,1024*8)); flush(); } fclose($fp); exit; } dl_file_resume($file); ?> pour le cas ou d'autres rencontrerait ce problème Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.