у меня возникла проблема при скачке файлов, в некоторых браузерах по разному себя вебудт с разными файлами, например pdf в опере не может нормально скачаться, не знает размер финальный. Я гуглил нашёл вот этот скрипт отдачи файла, он вообще пересылает и отдаёт страницу, это вообще не то.
| Код | function download($url, $new_name=''){
$openfile = @fopen($url, 'r');
if (!$openfile){
die('Файл не найден');
}else{
$fileinfo = stream_get_meta_data($openfile);
preg_match('#Content-Length:[\s\S](\d+)#is', join('', $fileinfo['wrapper_data']), $outsize); $filesize = !empty($outsize[1]) ? $outsize[1] : ''; preg_match('#Last-Modified:[\s\S](.+GMT)#Uis', join('', $fileinfo['wrapper_data']), $outmod); $last_modifed = !empty($outmod[1]) ? $outmod[1] : ''; preg_match('#Content-Type:[\s\S](.*)\s#U', join(' ', $fileinfo['wrapper_data']), $outmime); $mime_type = !empty($outmime[1]) ? $outmime[1] : ''; fclose($openfile);
$etag = md5($filename); $etag = substr($etag, 0, 8).'-'.substr($etag, 8, 7).'-'.substr($etag, 15, 8);
header('HTTP/1.1 200 Ok'); header('Content-Length: '.$filesize); header('ETag: "'.$etag .'"'); header('Accept-Ranges: bytes'); header('Connection: close'); header('Content-Type: '.$mime_type); header('Last-Modified: '.$last_modifed); header('Content-Disposition: attachment; filename="'.$new_name.'";');
echo readfile($filename);
} }
|
|