...温岭做网站,泰安房价各小区排行表,广告创意图片,东莞阳光网招聘在Servlet3.0之前#xff0c;文件上传需要借助于第三方插件#xff0c;在Servlet3.0之后#xff0c;Servlet本身开始支持文件上传功能。 获取上传的文件可以通过HTTPServletRequest的getPart和getParts两个方法实现#xff0c;前者接受一个表单名为参数#xff0c;返回对应…在Servlet3.0之前文件上传需要借助于第三方插件在Servlet3.0之后Servlet本身开始支持文件上传功能。 获取上传的文件可以通过HTTPServletRequest的getPart和getParts两个方法实现前者接受一个表单名为参数返回对应的Part对象后者返回一个包含所有Part的Collection。 通过获取的Part对象可以实现对所上传文件的操作包括读取上传文件的内容、删除文件以及把文件保存到磁盘上。Part还支持上传文件的各种属性的获取包括文件大小、文件名、文件类型通过、请求头内容。 因为Post会把表单的各项包括type为text的input中的内容都放在请求实体中而我们所需要获取的文件通常只是type为file的input中的内容对于其他的input我们希望把它当成请求参数来对待但此时不能通过getParameter来获取必须先获取Part对象再由Part的getInputStream获取输入流通过输入流得到相应的value值。在读取字符串的时候注意设置流的编码格式。 通过Part对象的getContentType方法可以获取文件的类型对于type为非file的inputgetContentType获取的值是Null。 Part获取到的文件名、文件类型等属性值的获取是通过分析Post实体提供的信息来完成的比如下面是一个Post报文的实体 -----------------------------23897129706324
Content-Disposition: form-data; namefilename20182文档
-----------------------------23897129706324
Content-Disposition: form-data; namefile; filename20182文档.docx
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document 其中就表面了两个表单input对应到Part就是两个Part对象一个是filename一个是file。他们的类型是通过Content-Type来指出的。filename没有提供Content-Type所以getContentType的时候就会返回null。转载于:https://www.cnblogs.com/JMLiu/p/8269879.html