Переименование файла на другом сервере по мере его загрузки пользователем [2] - с использованием PHP - PullRequest
0 голосов
/ 12 февраля 2009

Я уже задавал этот вопрос сегодня, но на этот раз я хочу знать, смогу ли я достичь этого через PHP, так как Javascript был не до этого.

У меня есть ссылка на файл на другом сервере. Если я предоставляю эту ссылку своим пользователям, заголовки выталкиваются для загрузки этого файла с этого сервера.

Есть ли способ для меня захватить эти заголовки и файл и перенаправить загрузку пользователю? Я хотел бы сделать это, чтобы я мог изменить имя файла загрузки, так как это всегда 'file.zip'.

Возможно ли это с PHP?

Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 12 февраля 2009

Вы можете загрузить файл на свой сервер, используя curl и правильно его обслужить (с заголовком Content-Disposition ). Пока вы используете HTTP, нет способа отправить только заголовок и позволить другому серверу передавать содержимое непосредственно клиенту.

1 голос
/ 12 февраля 2009

Может быть, вы можете использовать скрипт, подобный следующему:

<?php
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://www.example.com/the_path/file.zip");
  header('Content-Disposition: attachment; filename="alternate_filename.zip"');
  exit();
?>
1 голос
/ 12 февраля 2009

Вы можете сделать это, и вы можете сделать это несколькими способами.

1) (просто) скопируйте файл на свой сервер и переименуйте его. Укажите ссылки на скачивание этой копии.
2) (сложнее) Создайте заглушку php-файла с именем call, прочитайте файл с удаленного сервера в пределах php и направьте содержимое в вывод сценария. Для этого вам потребуется установить соответствующие заголовки и т. Д., А также настроить веб-сервер для анализа через PHP.

Серьезно, я бы выбрал вариант 1. (предполагается, что у вас есть законное право предоставлять контент и т. Д.)

...