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

42

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

Спасибо

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

какова цель этого? может быть, есть лучший способ ... Jonathan Fingland
Я нашел статью, которая, кажется, решает ту же проблему. Еще не пробовал:http://www.motobit.com/tips/detpg_multiple-files-one-request/ Martin Stein
Это фактический ответ? Или вы вырезали такие вещи, как Content-length для каждого вложения? Если это не работает, я более или менее предполагаю, что это не может быть сделано с текущим поколением веб-браузеров. Joe
@ Мартин, он говорит о загрузке, а не о загрузке. Ссылка, которую вы публикуете о загрузке. Приветствия. Nizzy
На самом деле, длина содержимого может даже не потребоваться сейчас, когда я смотрю на rfcs. Joe

Ваш Ответ

3   ответа
0

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

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

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

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

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

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

31

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

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

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

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

Похожие вопросы