Загрузка файла PHP (или Flash) - установите заголовки, затем перенаправьте - PullRequest
1 голос
/ 03 февраля 2011

Я хотел бы сделать это без части "readfile ()":

header("Content-type: application/force-download"); 
header("Content-Transfer-Encoding: Binary"); 
header("Content-length: ".filesize($file)); 
header("Content-disposition: attachment; filename="".basename($file)."""); 
readfile("$file"); 

В основном я пытаюсь переслать загрузку на другой URL, но в то же время мне нужно иметь возможностьустановите заголовки как «filename».

Функция readfile ($ file) не сделает этого за меня, потому что файл $ не хранится на том же сервере, что и скрипт PHP (даже в том же центре данных)

Возможно ли это вообще?Если не через PHP, может быть, FLASH может сделать это?

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Если вы действительно хотите получить файл для загрузки таким способом через PHP, вы можете использовать

header("Content-disposition: attachment; filename=myfile.jpg");
  echo file_get_contents("http://host.tld/path/to/myfile.jpg")

Цитируется Байроном Уитлоком на другом вопросе здесь . Он объясняет, что этот код поместит файл во временное хранилище, поэтому загрузка и удаление исходного файла будут выполняться автоматически.

Если вам не нужно использовать PHP, вы можете использовать скрытый iFrame на странице, чтобы загрузить файл

1 голос
/ 03 февраля 2011

Единственный способ сделать это с помощью PHP - сначала загрузить файл с удаленного сервера, а затем отправить его пользователю. На самом деле вы можете использовать readfile для этого, так как он поддерживает упаковщики fopen, если эта опция включена на вашем сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...