java中文件上传的Bug

Posted 敲代码的椰子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中文件上传的Bug相关的知识,希望对你有一定的参考价值。

文件上传,有两种方式,一种是自己解析文件流,一种是借助struct2中自带的拦截器对文件进行解析

自己解析流文件:利用 commons-io-1.4.jar和commons-fileupload-1.2.1.jar来进行解析,相关的事项如下:
1.浏览器端注意事项
     1.请求方式必须是 post
     2.需要使用组件<inputtype="file" name="f"> 组件必须有名称
     3.表单必须设置encType="multipart/form-data"
 2.服务器端处理
     通过request对象,获取InputStream,可以将浏览器提交的所有数据读取到.  
 3.入门案例分析
     在浏览器端创建一个可以上传文件的表单,在服务器端通过commons-fileupload完成文件上传。
          浏览器端注意三件事情:
                         1.表单的method=post
                         2.设置encType=multipart/form-date
                         3.使用具甩name属性的file元素
         在服务器端
              1.创建DiskFileItemFactory
                         2.创建ServletFileUpload
                         3.通过ServletFileUpload的parseRequest方法得到所有的FileItem 
 struct2中自带的拦截器对文件进行解析:
 这个原理同上,只是不可以用上述的 ServletFileUpload来获取FileItem ,因为struts2自2.0以后的版本,会拦截文件流,所以无法使用该方法来进行文件上传,必须使用struts2中自带的方法对文件进行读取,这也是这一次文件上传案例中的bug.





















以上是关于java中文件上传的Bug的主要内容,如果未能解决你的问题,请参考以下文章

java上传Excel文件,如何实现进度条显示?

java前后台开发之文件上传

百度编辑器上传文件的bug

bug----- Git上传文件错误导致本地代码丢失

文件上传transferTo一行代码的bug

记录一些遇见的bug——springBoot+minio文件上传为txt文件时,如果上传时编码格式不是utf-8,就会出现通过文件链接直接在windows窗口预览文件,文件内容乱码问题