unlex
Новичок
Проблема при скачивании файла с сервера
Знаю, что подобный вопрос возникал здесь не один раз. Перерыл все топики по этой теме, но свою проблему не решил. Итак,
необходимо сделать что-то вроде файлового архива. Файлы заливаются на сервер (с этим всё нормально) с возможностью их дальнейшего скачивания посетителями сайта (здесь уже похуже). В общем есть скрипт:
pdf и mp3 файлы скачиваются без проблем, зато архивы, zip, rar и графические файлы jpg, gif и т.д не открываются после скачки с сервера, т.е. повреждены. Причем, если закомментировать строку
то архивы при закачке уже не повреждаются, но графические файлы открыть так и не удаётся.
Пробовал различные mime типы, проблема не в этом. Что-то упирается в размер файла. После передачи он отличается от оригинала.
На http://www.php.net/header прочитал, что в этом случае необходимо добавлять ob_start(); и od_end_clean();
Результат тот же. Может кто то знает в чем дело?
Знаю, что подобный вопрос возникал здесь не один раз. Перерыл все топики по этой теме, но свою проблему не решил. Итак,
необходимо сделать что-то вроде файлового архива. Файлы заливаются на сервер (с этим всё нормально) с возможностью их дальнейшего скачивания посетителями сайта (здесь уже похуже). В общем есть скрипт:
PHP:
header("Pragma: no-cache");
header("Content-Description: file download");
header("Content-Type: application/octet-stream");
header("Content-Length: ".(string)filesize($path.$file_name));
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Transfer-Encoding: binary\n");
if (!readfile($path.$file_name)) die("Ошибка");
PHP:
header("Content-Length: ".(string)filesize($path.$file_name));
Пробовал различные mime типы, проблема не в этом. Что-то упирается в размер файла. После передачи он отличается от оригинала.
На http://www.php.net/header прочитал, что в этом случае необходимо добавлять ob_start(); и od_end_clean();
PHP:
ob_start();
header("Pragma: no-cache");
header("Content-Description: file download");
header("Content-Type: application/octet-stream");
header("Content-Length: ".(string)filesize($path.$file_name));
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Transfer-Encoding: binary\n");
if (!readfile($path.$file_name)) die("Ошибка");
od_end_clean();