Как написать PHP так, чтобы правильный файл можно было загрузить через командную строку Linux? - PullRequest
0 голосов
/ 01 марта 2011

Так что в основном у меня есть проблема, когда пользователь отправит запрос в test.php? Getnextfile = 1, и мне нужно обработать запрос и выяснить, какой следующий файл в строке будет загружен, и доставить егоПользователь.Часть, на которой я застрял, - как получить правильное имя файла для пользователя (сервер знает правильное имя файла, пользователь не знает).

В настоящее время я пытался использовать wget в тесте..php? getnextfile = 1, и он на самом деле не сохраняется с правильным именем файла.Также попытался перенаправить заголовок в правильный файл, и это тоже не работает.

Есть идеи?

Большое спасибо!

Джейсон

Ответы [ 2 ]

1 голос
/ 01 марта 2011

С июля 2010 года это невозможно в конфигурации wget по умолчанию. В процессе исправления ошибки безопасности по умолчанию они отключили опцию «trust-server-names». Для получения дополнительной информации см. Этот ответ:

https://serverfault.com/questions/183959/how-to-tell-wget-to-use-the-name-of-the-target-file-behind-the-http-redirect

0 голосов
/ 01 марта 2011

В вашем php-скрипте вам нужно установить заголовок 'Content-Disposition':

<?php

header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="myfile.zip"');
readfile('myfile.zip');

?>

Используйте curl вместо wget для проверки.

curl --remote-name --remote-header-name http://127.0.0.1:8080/download

...