Intereting Posts
symfony2 добавить динамический параметр для маршрутизации, попробуйте с помощью пользовательского загрузчика Как взять SMS и позвонить, чтобы предупредить кого-то, исходя из того, что говорит СМС? Как шифровать неблокирующие потоки сокетов PHP? как добавить информационные ссылки в меню навигации в opencart? Как я могу объединить несколько отдельных массивов, которые не включены в массив? Как использовать функции готовности печати в библиотеке PHPExcel Автоматическое обновление таблицы Html каждые x секунд Как сохранить номер страницы после перенаправления в CakePHP? Возможно ли получить расширение файла, не зная об этом? c # Ури не может иметь звездочку в доменном имени, но Java и php могут? Полезно ли использовать PHP для демона? Удалить дубликаты из массива на основе свойства объекта? Использование моего собственного API Laravel Подключение к Gmail через IMAP с использованием PHP-SSL Детальная форма электронной почты в Sencha Touch, предоставляющая исключение

Принудительная загрузка с внешнего сервера и переименование

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

Мне нужно загрузить внешний файл и переименовать его, но без использования readfile (), file_get_contents () или fread () (файлы слишком большие, чтобы читать их на сервере и загружать их снова на гостевой ПК).

Я пробовал сначала:

Код:

header("Location: http://www.example.com/example_download.zip"); 

Он работает для загрузки, но нет для example_download.zip переименования.

Поэтому я попытался с readfile ():

Код:

 header("Content-Disposition: attachment; filename="example_download_2.zip"\n\n"); header("Content-Type: application/force-download"); readfile("http://www.example.com/example_download.zip"); exit; 

С приведенным выше кодом он работает хорошо, сначала загружая удаленный файл на сервере, переименовывая его и отправляя его посетителю с новым именем, но использование ресурсов этого процесса очень велико, а также использование полосы пропускания.

Поэтому я ищу способ создания принудительной загрузки внешнего файла, переименования его на лету и создания загрузки с новым именем, но загрузки непосредственно из источника. Возможно?

Заранее спасибо

HTML5 теперь позволяет вам делать то, что вы хотите, через атрибут download :

 <a href="http://www.example.com/example_download.zip" download="custom_filename.zip"> Link </a> 

Больше информации:

http://developers.whatwg.org/links.html#attr-hyperlink-download http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

Это невозможно для вас. Если ваш php-скрипт перенаправил клиент на другой URL-адрес, то все заголовки HTTP останутся на новый скрипт url, чтобы решить. Вы должны загрузить его, чтобы переименовать его.