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等等。 ③text/plain是纯文本传输的意思,在发送邮件时要设置这种编码类型,否则会出现接收时编码混乱的问题,网络上经常拿text/plain和 text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上。①和③都不能用 于上传文件,只有multipart/form-data才能完整的传递文件数据。

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

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

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

检查一个服务器是否正确设置了MIME类型的步骤是:  1. 在Netscape浏览器中打开服务器网页

  2. 进入"View"菜单,选择"Page Info"

  3. 在弹出的窗口中点击上层框架中的"EMBED"

  4. 在下层框架中查看MIME的类型是否为"application/x-director"或"application/x-shockwave- flash",如果是上述信息的话表明服务器已经正确设置了MIME类型;而如果MIME类型列出的是文本内容、八位一组的数据或是其它形式均表明服务器 的MIME类型没有设置正确。

  如果服务器没有正确标明其发送的数据的类型,服务器管理员应该正确添加相关信息,具体操作方法非常简单快捷。

  每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

  常见的MIME类型

    超文本标记语言文本 .html,.html text/html

    普通文本 .txt text/plain

    RTF文本 .rtf application/rtf

    GIF图形 .gif image/gif

    JPEG图形 .jpeg,.jpg image/jpeg

    au声音文件 .au audio/basic

    MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

    RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

    MPEG文件 .mpg,.mpeg video/mpeg

    AVI文件 .avi video/x-msvideo

    GZIP文件 .gz application/x-gzip

    TAR文件 .tar application/x-tar

    Internet中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用 的MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的 很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的 处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的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就会传递不成功,取表单值加入数据库时,用到下面的:

form表单的enctype相关推荐

  1. HTML form表单添加enctype属性后获取不到input值

    HTML form表单添加enctype属性后获取不到input值 问题如图所示, 在servlet中输出获取的属性值,发现全部为null 最后结论 enctype修改了form表单提交时的格式,不再 ...

  2. form表单的enctype属性传值问题

    HTML文件中的form表单的enctype属性有三个属性值: ① enctype="application/x-www-form-urlencoded" 默认选项 将表单中的数据 ...

  3. php中enctype属性,Form表单的enctype属性和method属性

    在WEB开发过程中,Form表单元素是一个使用频率非常高的控件,对于这样一个控件,也许我们并没有认真关注过.今天我们来解读它的enctype属性和method属性. enctype 属性 enctyp ...

  4. C# HTTP系列10 form表单的enctype属性

    系列目录     [已更新最新开发文章,点击查看详细] 在ASP.NET编程中经常遇到下面的代码片段,将人员信息以表单方式提交到后台程序并保存到服务器与数据库中. 1 <form action= ...

  5. form表单动态设置enctype不生效问题

    问题说明: 在一个form表单中需要发送两种enctype的请求,因此就需要对form表单的enctype进行动态修改.具体做法如下: 1.需要发送application/x-www-form-url ...

  6. form表单上传文件_SpringBoot中如何使用SpringMVC上传文件?

    今天我们要说的这个话题很简单,不要问为啥,因为SpringBoot,哈哈.现在SpringBoot可以说人人都会用了,它的好处是显而易见的,大大的简化了配置,一起来看看吧. 我们分以下3种情况来谈这个 ...

  7. 表单提交enctype参数详解之:application/x-www-form-urlencode和multipart/form-data

    application/x-www-form-urlencode 我们在提交表单的时候,form表单参数中会有一个enctype的参数.enctype指定了HTTP请求的Content-Type. 默 ...

  8. 传统form表单提交方式的文件上传与文件存储

    引言 时隔一天,上一篇文章<文件存储>刚一停笔,今天上午就解决了困扰我已久的文件上传问题. 站在一个已实现功能的角度来重新看待这个文件上传的业务:编辑页面选择jar包,然后通过form表单 ...

  9. form表单同时提交带文本和图片的数据

    方法一:使用ajax异步提交 此种方法的好处是可以回调响应结果. html代码: <form action="${basePath}/save" method="p ...

最新文章

  1. Java学习总结:43(转换流)
  2. linux 进程等待 wait 、 waitpid
  3. a为数组名。sizeof(a)和sizeof(a)有什么区别?结果是?
  4. mac 推荐一款本机截屏找latex公式软件Mathpix 亲测有效
  5. Wordpress的theme存储位置
  6. Spring Async和Java的8 CompletableFuture
  7. 文件类常用方法 c# 1614531951
  8. POJ 2431 Expedition 优先队列
  9. 2G退网 对用户影响几何?
  10. 对POSIX和SystemV消息队列优化:用户态消息队列
  11. 暴力测试也疯狂——论Python代码优化
  12. 怎么调节Ubuntu系统的屏幕亮度
  13. 统计英文文本的字母个数
  14. 《SOA In the real world》第一章译稿(含下载)
  15. 2021全国大学生数学建模 C题 解题思路和细节展示
  16. jsonp的原理与实现
  17. Windows10 文件夹按分组排序
  18. Re.常系数齐次递推
  19. Redis_Study
  20. 检测数据库连接泄漏的最佳方法

热门文章

  1. IM群聊头像九宫格实现方式
  2. Win10 下安装PhotoShop CS6
  3. .pfx格式和.Cer格式的区别
  4. linux 在指定区域分配内存 c语言,C语言动态内存分配:(一)malloc/free的实现及malloc实际分配/释放的内存...
  5. 二叉树的遍历(递归算法与非递归算法)
  6. [Python] reverse()函数 VS reversed()函数
  7. 《JSP程序设计》报告
  8. ODrive实例 #1 电机配置实例(4250-520KV + TLE5012B-E1000)
  9. matlab 图片制作动画制作,MATLAB作图之制作动画:单摆运动仿真
  10. Xshell连接ubuntu后vi编辑器中数字小键盘乱码