Заголовок XMLHttpRequest: декодировать двоичные данные по прибытии на сервер

Я строю httprequest multipart/form-data, используя объект XMLHttpRequest Javascript. Вот заголовки:

Accept:  */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Content-Length: 38539
Content-Type: multipart/form-data; charset=UTF-8; boundary=CONTENT_BOUNDARY
Cookie: __utma=111872281.167592067.1396133699.1396133699.1396133699.1; PHPSESSID=ea7cfjgi8e29v1bhnrj580vbc2
DNT: 1
Host: localhost:90
Referer: localhost:90/my_secret_referer/no_peeking.php
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0

Я отправляю запрос в PHP-документ.

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

--CONTENT_BOUNDARY
Content-Disposition: form-data; name="images[]"; filename="airplane.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

.../9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDABkRExYTEBkWFBYcGxkeJT4pJSIiJUw3Oi0...

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

Сегмент этого процесса, которым я недоволен, - это ручное декодирование двоичных данных. Всегда можно получать загруженные изображения на сервер в виде полных, разборчивых файлов изображений, используя jQuery $.ajax() или Malsup jQuery Form. Я изучил формат двух упомянутых запросов и обнаружил, что они тоже отправляют двоичную информацию, используя запрос multipart/form-data. Единственное различие, которое я обнаружил и которое намеренно не сделал, заключается в том, что мой запрос

charset: utf8;

спецификация внутри Content-Type после отправки.

Могу ли я, и если могу, как я могу сказать серверу декодировать полученную двоичную информацию?

0 ответов

Другие вопросы по тегам