Establecer el formato de codificación para la transmisión de formularios

Establecer el formato de codificación para la transmisión de formularios 

1591 personas leyeron comentarios (0) Informe favorito        
  clasificación:
 

-------------------------------------------------- ------------------------------------
El significado de enctype = "multipart / form-data" en el formulario, Consiste en configurar la codificación MIME del formulario. ( Para cargar archivos )

De forma predeterminada, este formato de codificación es application / x-www-form-urlencoded (no se puede usar para cargar archivos);


Solo cuando se utilizan datos de formulario / varias partes, los datos del archivo se pueden transferir por completo.


enctype = "multipart / form-data" es para cargar datos binarios; el valor de entrada en el formulario se ingresa con 2

El sistema se transmite.

El valor de entrada en el formulario se pasa en formato binario,


Entonces la solicitud no vale la pena. En otras palabras, si se agrega este código, la solicitud no tendrá éxito.


Al agregar el valor del formulario a la base de datos , se usa lo siguiente:

SmartUpload su = new SmartUpload (); // Cree un nuevo objeto

SmartUpload su.getRequest (). GetParameterValues ​​(); tome el valor de la matriz

su.getRequest (). GetParameter (); tome Valor único de parámetro único

 -------------------------------------------------- -------------------------------------------------- -



 Agregue el atributo enctype = "multipart / form-data" al <form> del formulario de carga del archivo ,

 De hecho, cuando no escribe el atributo enctype en el formulario del formulario, el valor del atributo enctype se agrega de forma predeterminada. El valor predeterminado es enctype = "application / x- www-form-urlencoded".

 Este atributo administra la codificación MIME del formulario. Hay tres valores para elegir:

  ①application / x-www-form-urlencoded (valor predeterminado)

  ②multipart / form-data

  ③text / plain

  donde ①application / x-www-form-urlencoded es el valor predeterminado Valor, es posible que haya visto esto en AJAX: xmlHttp.setRequestHeader ("Content-Type", "application / x-www-form-urlencoded"); Estas dos cosas son lo mismo, que es establecer la transmisión del formulario Codificación. Si no lo escribe en AJAX, puede obtener un error, pero puede dejar enctype = "application / x-www-form-urlencoded" en el formulario HTML, porque el formulario HTML predeterminado es este tipo de codificación de transmisión.


②multipart-form-data是用来指定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或者mp3等等。


③text/plain是纯文本传输的意思,在发送邮件时要设置这种编码类型,否则会出现接收时编码混乱的问题,网络上经常拿text/plain和 text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,


在发送头文件时才用得上。①和③都不能用 于上传文件,只有multipart/form-data才能完整的传递文件数据。

  上面提到的MIME,它的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉 浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。

  简单说,MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

  浏览器接收到文件后,会进入插件系统进行查找,查找出哪种插件可以识别读取接收到的文件。如果浏览器不清楚调用哪种插件系统,它可能会告诉用户缺少某 插件,或者直接选择某现有插件来试图读取接收到的文件,后者可能会导致系统的崩溃。传输的信息中缺少MIME标识可能导致的情况很难估计,因为某些计算机 系统可能不会出现什么故障,但某些计算机可能就会因此而崩溃。

--------------------------------------------------------------------------------------
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。(用于文件上传

默认情况,这个编码格式是application/x-www-form-urlencoded   (不能用于文件上传);


只有使用了multipart/form-data,才能完整的传递文件数据。


enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进

制的方式传过去。

form里面的input的值以2进制的方式传过去,


所以request就得不到值了。也就是说加了这段代码,用request就会传递不成功


取表单值加入数据库时,用到下面的:

SmartUpload su = new SmartUpload();//新建一个SmartUpload对象

su.getRequest().getParameterValues();取数组值

su.getRequest().getParameter( );取单个参数单个值

 ------------------------------------------------------------------------------------------------------



 上传文件的表单中<form>要加属性enctype="multipart/form-data",

 其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded".

 这个属性管理的是表单的MIME编码,共有三个值可选:

  ①application/x-www-form-urlencoded (默认值)

  ②multipart/form-data

  ③text/plain

  其中①application/x-www-form-urlencoded是默认值,大家可能在AJAX里见过这 个:xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlencoded"); 这两个要做的是同一件事情,就是设置表单传输的编码。在AJAX里不写有可能会报错,但是在HTML的form表单里是可以不写 enctype="application/x-www-form-urlencoded"的,因为默认HTML表单就是这种传输编码类型


②multipart-form-data是用来指定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或者mp3等等。


③Texto / sin formato significa transmisión de texto sin formato. Este tipo de codificación debe establecerse al enviar correo, de lo contrario habrá un problema de confusión de codificación al recibir. En Internet, texto / sin formato y texto / html a menudo se comparan. De hecho, estos dos son muy diferentes. Es fácil de distinguir, el primero se usa para transmitir archivos de texto sin formato y el segundo es el tipo de codificación para transmitir código html.


Solo se usa al enviar archivos de encabezado. Ni ① ni ③ se pueden usar para cargar archivos, solo los datos de formularios / multiparte pueden transferir datos de archivos por completo.

  El MIME mencionado anteriormente, su nombre completo en inglés es "Extensiones de correo de Internet multipropósito" Extensiones de correo de Internet multipropósito. Es un protocolo de extensión de correo de Internet multipropósito . Se aplicó por primera vez a los sistemas de correo electrónico en 1992, pero también se aplicó más tarde. Navegador. El servidor le dirá al navegador el tipo de datos multimedia que envían, y el medio de notificación es indicar el tipo MIME de los datos multimedia, de modo que el navegador sepa cuál de la información recibida son archivos MP3, cuáles son archivos Shockwave, etc. El servidor coloca el identificador MIME en los datos transmitidos para indicarle al navegador qué complemento utilizar para leer el archivo relevante.

  En pocas palabras, el tipo MIME es la forma de configurar un archivo con una determinada extensión para que lo abra una aplicación . Cuando se accede al archivo con la extensión, el navegador utilizará automáticamente la aplicación especificada para abrirlo . Se utiliza principalmente para especificar algunos nombres de archivos definidos por el cliente y algunos métodos de apertura de archivos multimedia.

  Una vez que el navegador recibe el archivo, ingresará al sistema de complementos para averiguar qué complemento puede reconocer y leer el archivo recibido. Si el navegador no sabe a qué sistema de complementos llamar, puede decirle al usuario que falta un complemento o seleccionar directamente un complemento existente para intentar leer el archivo recibido, lo que puede hacer que el sistema falle. La situación que puede ser causada por la falta de identificación MIME en la información transmitida es difícil de estimar, porque algunos sistemas informáticos pueden no experimentar ninguna falla, pero algunos equipos pueden fallar debido a esto.

Supongo que te gusta

Origin blog.csdn.net/Qianliwind/article/details/70484011
Recomendado
Clasificación