Как загрузить несколько файлов одним HTTP-запросом?

Вариант использования: пользователь нажимает на ссылку на веб-странице - бум! загрузка файлов, сидящих в его папке.
Я пытался упаковать файлы, используясоставное / смешанное сообщение, но, похоже, работает только для Firefox

Вот как выглядит мой ответ:

<code>HTTP/1.0 200 OK
Connection: close
Date: Wed, 24 Jun 2009 23:41:40 GMT
Content-Type: multipart/mixed;boundary=AMZ90RFX875LKMFasdf09DDFF3
Client-Date: Wed, 24 Jun 2009 23:41:40 GMT
Client-Peer: 127.0.0.1:3000
Client-Response-Num: 1
MIME-Version: 1.0
Status: 200

--AMZ90RFX875LKMFasdf09DDFF3 
Content-type: image/jpeg 
Content-transfer-encoding: binary 
Content-disposition: attachment; filename="001.jpg" 

<< here goes binary data >>--AMZ90RFX875LKMFasdf09DDFF3 
Content-type: image/jpeg 
Content-transfer-encoding: binary 
Content-disposition: attachment; filename="002.jpg" 

<< here goes binary data >>--AMZ90RFX875LKMFasdf09DDFF3 
--AMZ90RFX875LKMFasdf09DDFF3--
</code>

Спасибо

Постскриптум Нет, архивирование файлов не вариант

 Martin Stein02 мар. 2012 г., 17:47
Я нашел статью, которая, кажется, решает ту же проблему. Еще не пробовал:http://www.motobit.com/tips/detpg_multiple-files-one-request/
 Joe25 июн. 2009 г., 02:14
Это фактический ответ? Или вы вырезали такие вещи, как Content-length для каждого вложения? Если это не работает, я более или менее предполагаю, что это не может быть сделано с текущим поколением веб-браузеров.
 Jonathan Fingland25 июн. 2009 г., 02:15
какова цель этого? может быть, есть лучший способ ...
 Joe25 июн. 2009 г., 02:17
На самом деле, длина содержимого может даже не потребоваться сейчас, когда я смотрю на rfcs.
 Nizzy19 сент. 2012 г., 19:09
@ Мартин, он говорит о загрузке, а не о загрузке. Ссылка, которую вы публикуете о загрузке. Приветствия.

Ответы на вопрос(3)

ого) изображения в документ HTML, однако с точки зрения браузера / сервера вы технически все еще отправляете только 1 документ. Может быть, это то, что вы собираетесь делать?

Встраивать изображения в HTML с помощью Base64

РЕДАКТИРОВАТЬ: я только что понял, что большинство методов, которые я нашел в моем поиске Google, поддерживают только Firefox, а не iE.

 18 июл. 2013 г., 19:24
URI данных теперь довольно хорошо поддерживаются (stackoverflow.com/questions/1765342/…), но они не помогут с этим вопросом.

10 лет назад в netscape 4 дня. Он использовал границы, такие как то, что вы делаете, и вообще не работал с другими браузерами в то время.

Хотя он не отвечает на ваш вопрос, HTTP 1.1 поддерживает конвейеризацию запросов, так что по крайней мере одно и то же TCP-соединение может быть повторно использовано для загрузки нескольких изображений.

Решение Вопроса

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

MIME / multipart предназначен для отправки сообщений электронной почты и / или POST на HTTP-сервер. Он никогда не предназначался для получения и анализа на стороне клиента транзакции HTTP. В некоторых браузерах это реализовано, в других - нет.

В качестве другой альтернативы вы можете использовать скрипт JavaScript, открывающий окна, загружающие отдельные файлы. Или Java-апплет (требует Java Runtime на компьютерах, если это корпоративное приложение, это не должно быть проблемой [поскольку NetAdmin может развернуть его на рабочих станциях]), который будет загружать файлы в каталог пользователя ' выбор.

 zakovyrya25 июн. 2009 г., 02:31
Сжатие не является опцией, потому что требование не просить пользователя выполнить дополнительную операцию после загрузки. Ваше утверждение, что составные сообщения не предназначены для передачи HTTP, не имеет смысла. Например, несколько файлов загружаются с использованием multipart / form-data. Я не вижу причин, по которым составные сообщения должны быть запрещены для бинарных загрузок
 25 июн. 2009 г., 02:35
Ху? Как вы думаете, загрузка файлов из браузера работает?
 25 июн. 2009 г., 02:59
Извините, ваш комментарий появился только после того, как я отправил свой. Возможно, это не какая-то санкционированная W3C / IETF вещь, но я помню, что делал это сам более десяти лет назад. В то время это было частью «push на стороне сервера».
 25 июн. 2009 г., 02:41
@Einstein: я неправильно сформулировал свое первоначальное утверждение, так как предполагал, что люди знают разницу между multipart / mixed и multipart / form-data. Опять же, multipart / * никогда не предназначался для получения и анализа на стороне клиента транзакции HTTP. Он создается на стороне клиента во время загрузки файла и принимается и анализируется на стороне сервера.
 25 июн. 2009 г., 02:34
@zakovyrya: Позвольте мне перефразировать это последнее утверждение. составные сообщения никогда не предназначались для получения и анализа на стороне клиента транзакции HTTP.

Ваш ответ на вопрос