2016-03-24 6 views
1

Я НЕ спрашиваю, как установить form submit = ... или <input type = file ....Загрузка изображения HTML: как файл изображения отправляется на сервер?

Какой «формат» выполняет .jpg, чтобы «переместить» с ПК пользователя через Интернет на сервер?

Я просмотрел my_typeFileInput.files[0], но это все, что я нашел:

lastModified  : 457194076140 
lastModifiedDate : Date {Sat Mar 05 2016 11:07:56 GMT-0500 (Eastern Daylight Time)} 
name    : "my_image.jpg" 
size    : 1757295 
type    : "image/jpeg" 

Очевидно, что это не достаточно для передачи данных в формате .jpg через Интернет к серверу. Я ожидал увидеть длинную строку данных 1.7MB, которая представляет .jpg.

+0

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4 имеет пример, который должен пролить некоторый свет. И если вам нужно/нужно больше деталей, перейдите к RFC, http://tools.ietf.org/html/rfc2388 – CBroe

+0

интересным, особенно 17.13.4 ... он объяснил, что означает 'enctype = multipart/form-data 'структура данных выглядит как ... ... к сожалению, я не видел, где она объясняет, какой формат .jpg преобразуется в ... хотя эта статья (17.13.4) действительно указывала, где внутри multipart/form-data. jpg будет сохранен ... – dsdsdsdsd

+0

Вы видите, где для текстового файла он просто говорит: 'Content-Type: text/plain'? Это означает, что содержимое текстового файла будет внедрено как есть, без какого-либо дополнительного экранирования или кодирования. И для изображения он говорит «Content-Transfer-Encoding: binary» - это означает любую последовательность октетов, поэтому в основном то же самое: просто данные кодированного двоичного изображения без кодировки. [...] – CBroe

ответ

0

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4 имеет пример того, как выглядит запрос типа multipart/form-data, который должен пролить некоторый свет.

И если вы хотите/нужно больше деталей, над головой в RFC, http://tools.ietf.org/html/rfc2388

В приведенном примере, вы видите, где для текстового файла он просто говорит, Content-Type: text/plain? Это означает, что содержимое текстового файла будет встроенный как есть, без какого-либо дополнительного экранирования или кодирования. И для изображения, он говорит Content-Transfer-Encoding: binary - это означает любую последовательность октетов, поэтому в основном то же самое: просто данные кодированного двоичного изображения без кодирования.

Это может привести к проблемам, конечно, если текстовый файл или изображение должны содержать одну и ту же последовательность байтов, как выбранная граница, - значение в примере равно AaB03x (в действительности будут использоваться более длинные, случайным образом созданные строки) , и это может (плюс два первых ==, вместе они составляют строку границы) также встречаются внутри текста или изображения - поэтому вместо того, чтобы помещать «простые» данные в источник электронной почты, можно использовать форму кодирования после all-like base64 для двоичных данных изображения и кавычки для печати.

+0

CBroe ... привет ... Вы видели изменения, которые я сделал для вашего ответа? ... благодаря – dsdsdsdsd

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