Скрипт загрузки PHP - PullRequest
       14

Скрипт загрузки PHP

0 голосов
/ 03 октября 2011

Я пытаюсь написать php-скрипт, который будет проверять параметры, переданные перед началом загрузки клиента. Я начал с попытки начать загрузку:

    <?php
    $file =  '/tticon.jpg';

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header("Content-Disposition: attachment; filename=\"".basename($file)."\"");
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
?>

Когда я перехожу к этому сценарию, он показывает пустую страницу, и ничего не происходит. Как начать загрузку?

Ответы [ 5 ]

2 голосов
/ 03 октября 2011

Попробуйте использовать application/force-download в качестве Content-Type. Если вы хотите показать изображение в браузере, вы можете использовать image/jpg.

0 голосов
/ 03 октября 2011

Ваш $file выглядит подозрительно. У вас действительно есть tticon.jpg в корневом каталоге вашего сервера? Помните, что файловые функции PHP работают на FILESYSTEM сервера, а не на WEB-каталогах, которые предоставляет Apache. PHP не будет волшебным образом предварять корневой каталог документа вашего сайта по этому пути. Он буквально будет искать в корневой директории файловой системы сервера, а НЕ в корне документа вашего сайта.

0 голосов
/ 03 октября 2011

Поскольку расширение файла - ".jpg", я предполагаю, что MIME - image/jpeg.

Заменить эту строку:

header('Content-Type: application/octet-stream');

с этим:

header('Content-Type: image/jpeg');

Если вы действительно хотите заставить браузер загрузить файл (что я нахожу очень маловероятным в любом случае):

Заменить строку следующим образом:

header("Content-Type: application/force-download");
0 голосов
/ 03 октября 2011

Добавьте эти строки:

header("Content-Type: application/force-download");
0 голосов
/ 03 октября 2011
header("Content-type: application/force-download"); 
...