SmartUpload
要使用SmartUpload组件,就需要导入smartupload.jar开发包
快速入门
//实例化组件 SmartUpload smartUpload = new SmartUpload(); //初始化上传操作 smartUpload.initialize(this.getServletConfig(), request, response); try { //上传准备 smartUpload.upload(); //对于普通数据,单纯到request对象是无法获取得到提交参数的。也是需要依赖smartUpload String password = smartUpload.getRequest().getParameter("password"); System.out.println(password); //上传到uploadFile文件夹中 smartUpload.save("uploadFile"); } catch (SmartUploadException e) { e.printStackTrace(); }
测试
同样地,我们可以上传文件到uploadFile文件夹中。代码量也的确减少很多!
也能够获取普通字段的参数
上传文件名的中文乱码和上传数据的中文乱码
我把文件名改成中文,就乱码了:
表单提交过来的中文数据也乱码了
上面已经说了,上传文件的数据的表单进行了二进制封装,所以使用request对数据编码编码,对于表单提交过来的数据是不奏效的!
FileUpload解决乱码
使用FileUpload解决乱码问题是十分简单的
解决中文文件名乱码,得到解析器以后,就直接设置解析器的编码为UTF-8就行了!
//设置upload的编码 fileUpload.setHeaderEncoding("UTF-8");
解决表单数据乱码,在获取表单值的时候,按照UTF-8编码来获取
String value = fileItem.getString("UTF-8");
效果:
SmartUpload解决乱码
这个组件解决乱码问题有点麻烦,在网上找了各种办法也没找到简单的…
所以,如果数据不涉及到中文就使用SmartUpload组件,涉及到中文数据就使用FileUpload组件吧!
参考简书:https://www.jianshu.com/p/8f7fca0f6a6f