2009-10-01 3 views
2

Мне нужно загрузить более одного файла с сервера (PHP) одним щелчком мыши. можно загрузить один файл, но он не работал для нескольких файлов за раз (предположим, что файлы находятся в каталогах diff). Я использую WAMP, пожалуйста, помогите мне.загрузить несколько файлов с сервера одним щелчком мыши (PHP, WAMP)

спасибо и привет

tismon

+0

Я думаю, вам нужно объяснить, что вам нужно более подробно. обычно сервер ВСЕГДА загружает несколько файлов при загрузке страницы (изображения, скрипты и т. д.). вы имеете в виду несколько файлов данных, которые будут сохраняться пользователем поочередно - один за другим? –

ответ

5

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

7

Просто запишите файлы на сервер и отправьте архив, например, Gmail с несколькими вложениями. В большинстве современных операционных систем не должно быть проблем с распаковкой пакета, некоторые из них будут делать это «на лету» (без необходимости делать что-либо). Я не знаю PHP, но, похоже, есть zip-библиотека, см. Раздел examples on PHP’s website.

+1

Простой, самый * стандартный * метод и, безусловно, гораздо более удобный для пользователя, чем метарование потенциально десятков диалоговых окон «Сохранить как» на лице пользователя. – Wim

1

Вы можете отправить пользователю электронное письмо со ссылками или даже вложений, если размеры файлов малы.

3

С PHP это невозможно. Вы можете обслуживать только один файл за запрос. Тем не менее, вы можете запустить браузер для загрузки нескольких файлов с помощью немного JavaScript:

var files = ['fileone.zip', 'filetwo.zip']; 
for (var i = 0; i < files.length; i++){ 
    window.open(files[i], 'Download file'); 
} 

Это действительно довольно противно, хотя. Я бы просто пошел с почтой.


PS. Если вы хотите, чтобы загрузить HTML-файлы с помощью этого метода, вам необходимо отправить заголовок Content-Disposition для каждого файла, чтобы документ не только получить вынесенный в всплывающем окне, порожденном window.open:

header('Content-Disposition: attachment; filename="todownload.html"'); 
+1

приятная дополнительная информация: теперь, в 2012 году, можно получить БОЛЬШЕ, чем один файл за запрос по протоколу SPDY. – Sliq

2

Вы могли бы создайте IFrame, а в Javascript установите источник IFrame для различных файлов загрузки. Если вы столкнетесь с проблемами времени с загрузкой, вы можете попробовать задержка загрузки или использовать несколько IFrames (но последнее кажется уродливым).

Смежные вопросы