Проблема с закачкой файлов с сервера

krafty

new Exception
Проблема с закачкой файлов с сервера

Отправляю заголовки
PHP:
   header("Content-Type: $ctype");
   header("Content-Transfer-Encoding: binary");
   header("Content-Length: $len");
   header("Content-Disposition: attachment; filename=file.$file_extension");
   @readfile($file);
   exit;
Выводится окно для сохранения файла. Проблема в том, что сохраненный файл по размеру одинаков с файлом на сервере, а вот по содержимому отличается. Уже не знаю в чем проблема. Работает как-то через раз. Может в настройках апача проблемы?
 

beba

Новичок
Скорее всего перед этими строчками есть вывод на экран.
Проверь чтоб небыло чего нить типа echo, print и т.п.
А размер такой же, так как ты жестко указываешь размер в заголовках.
> header("Content-Length: $len");
 

Bocha

Guest
Re: Проблема с закачкой файлов с сервера

Автор оригинала: krafty

header("Content-Disposition: attachment; filename=file.$file_extension");
@readfile($file);
exit;
[/php]
файл так и называется file? или должна быть переменная?
 

krafty

new Exception
в этом заголовке указывается имя файла НЕ на сервере
получилось так:
PHP:
header("HTTP/1.1 200 OK");
header("Content-Type: $ctype");
header("Content-Length: $len");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=$filename");
$f = fopen($file, "rb"); 
$s = fread($f, filesize($file)); 
fclose($f); 
echo $s;
 

Bocha

Guest
Автор оригинала: krafty
в этом заголовке указывается имя файла НЕ на сервере
получилось так:
PHP:
header("HTTP/1.1 200 OK");
header("Content-Type: $ctype");
header("Content-Length: $len");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=$filename");
$f = fopen($file, "rb"); 
$s = fread($f, filesize($file)); 
fclose($f); 
echo $s;
собственно ты изменил переменную указывающую имя файла. у тебя она прописана с ошибкой в твоем первом посте
 

krafty

new Exception
header("Content-Disposition: attachment; filename=picture.jpg")
тоже работает
в этом хеадере указывается имя файла для браузера

-~{}~ 22.12.05 15:50:

т.е. файла picture.jpg на сервере может и не существовать
 

Bocha

Guest
Автор оригинала: krafty
header("Content-Disposition: attachment; filename=picture.jpg")
тоже работает
в этом хеадере указывается имя файла для браузера

-~{}~ 22.12.05 15:50:

т.е. файла picture.jpg на сервере может и не существовать
при чем тут сервер или не сервер. у тебя в первом посте $file написано file, без $
 

krafty

new Exception
фух... я уже устал
в коде первого поста браузеру всегда будут отдаваться файлы file.pdf, file.jpg,...........
а в случае переменной - значение этой переменной
 

Bocha

Guest
Автор оригинала: krafty
фух... я уже устал
в коде первого поста браузеру всегда будут отдаваться файлы file.pdf, file.jpg,...........
а в случае переменной - значение этой переменной
теперь понятно. хотя ты не писал об этом, но ты потом в readfile используешь нечто другое.
Если по прежнему не выходит, попробуй вот такое header("Content-Type: application/x-force-download; name=name.ext")
 
Сверху