Java文件上传细讲(3)

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文件夹中。代码量也的确减少很多!

也能够获取普通字段的参数



Java文件上传细讲(3)


上传文件名的中文乱码和上传数据的中文乱码

我把文件名改成中文,就乱码了:



Java文件上传细讲(3)


表单提交过来的中文数据也乱码了


Java文件上传细讲(3)


上面已经说了,上传文件的数据的表单进行了二进制封装,所以使用request对数据编码编码,对于表单提交过来的数据是不奏效的!


FileUpload解决乱码

使用FileUpload解决乱码问题是十分简单的


解决中文文件名乱码,得到解析器以后,就直接设置解析器的编码为UTF-8就行了!


//设置upload的编码
        fileUpload.setHeaderEncoding("UTF-8");


解决表单数据乱码,在获取表单值的时候,按照UTF-8编码来获取


String value = fileItem.getString("UTF-8");


效果:


Java文件上传细讲(3)


SmartUpload解决乱码

这个组件解决乱码问题有点麻烦,在网上找了各种办法也没找到简单的…


所以,如果数据不涉及到中文就使用SmartUpload组件,涉及到中文数据就使用FileUpload组件吧!


参考简书:https://www.jianshu.com/p/8f7fca0f6a6f


上一篇:在SpringMVC框架中统一处理异常及请求参数验证(5)


下一篇:重要通知 | WanaCrypt0r 2.0及Onion等勒索软件安全建议