Sophia
Новичок
помогите исправить header (чтобы не показывал содержимое файла, а начинал закачку)
скрипт вместо того, чтобы начинать download (появление диалогового окна с сохранением файла на диске), выводит содержимое файлов в браузере
когда я пробовала с помощью него скачать файл clip.avi, его содержимое стало появляться в браузере:
RIFFZ•♀ AVI LISTм◄ hdrlavih8 $ф ► T ☺ _☻ `☺
LIST"► strlstrh8 vidsdivx ☺ ► T ^_ ►'
_☻`☺strf( ( _☻ `☺ ☺ ↑ DX50 _¶ JUNK↑►
и так далее...
вот собственно сам скрипт:
я пробовала просто заменить в нем .avi на что-то другое - это не помогает...
подскажите, что в нем нужно исправить, чтобы появлялся диалог на сохранение файла на диске?
я где-то читала, что force-download 2-х кратно увеличивает траффик с сайта... так ли это в моем случае?
путь к файлу указан без домена в начале ("file/")
скрипт вместо того, чтобы начинать download (появление диалогового окна с сохранением файла на диске), выводит содержимое файлов в браузере
когда я пробовала с помощью него скачать файл clip.avi, его содержимое стало появляться в браузере:
RIFFZ•♀ AVI LISTм◄ hdrlavih8 $ф ► T ☺ _☻ `☺
LIST"► strlstrh8 vidsdivx ☺ ► T ^_ ►'
_☻`☺strf( ( _☻ `☺ ☺ ↑ DX50 _¶ JUNK↑►
и так далее...
вот собственно сам скрипт:
PHP:
$filesize = filesize($realDLfolder.$path.$filename);
if (ereg(".mp3",$filename)){$xtype="audio/mpeg";}
elseif(ereg(".zip",$filename)){$xtype="application/x-zip-compressed";}
elseif(ereg(".exe",$filename)){$xtype="application/octet-stream";}
elseif(ereg(".txt",$filename)){$xtype="text/plain charset='us-ascii'";}
elseif(ereg(".doc",$filename)){$xtype="application/msword";}
elseif(ereg(".xls",$filename)){$xtype="application/vnd.ms-excel";}
elseif(ereg(".ppt",$filename)){$xtype="application/vnd.ms-powerpoint";}
elseif(ereg(".gif",$filename)){$xtype="image/gif";}
elseif(ereg(".png",$filename)){$xtype="image/png";}
elseif(ereg(".jpg",$filename)){$xtype="image/jpg";}
elseif(ereg(".wav",$filename)){$xtype="audio/x-wav";}
elseif(ereg(".mpe",$filename)){$xtype="video/mpeg";}
elseif(ereg(".mov",$filename)){$xtype="video/quicktime";}
elseif(ereg(".avi",$filename)){$xtype="video/x-msvideo";}
else { $xtype="application/force-download"; }
$fp=@fopen($realDLfolder.$path.$filename,"rb");
if ($fp) {
// Create the headers used for downloading the file
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: ".$xtype);
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=\"".$filename."\";");
header("Content-Length: ".$filesize);
// Actually start downloading the file
while (!feof($fp)) {
echo(@fgets($fp, 4096)); }
fclose ($fp);
}
else {
echo "There was a problem downloading that file!<br><font color='red'>".$path.$filename."</font><br><br><a href='".$badreferrer."'>Click here to get a proper link!</a>"; exit; }
подскажите, что в нем нужно исправить, чтобы появлялся диалог на сохранение файла на диске?
я где-то читала, что force-download 2-х кратно увеличивает траффик с сайта... так ли это в моем случае?
путь к файлу указан без домена в начале ("file/")