用jspsmartupload实现文件上传下载遇到的问题

来源:互联网 发布:德国nobilia柏丽 知乎 编辑:程序博客网 时间:2024/06/07 04:43

今天学习了在web项目中用jspsmartupload插件实现简单的文件上传下载功能,因为过程很曲折,就写了下来。最开始,因为第一次用插件,发现插件比写底层方法要快多了。但用的过程中就发现了一些问题,对于初学java的我实在是头大。记录一下遇到的问题吧:


1.在文件上传的jsp页面出现中文乱码的问题,在网上搜了一下午加一晚上的方法,各种尝试。大多数都是request.setCharacterEncoding("utf-8")、response.setCharacterEncoding("utf-8")这样的。或者修改tomcat服务器配置参数为utf-8格式。然后保证页面编码格式统一的方法,我都尝试过,发现问题解决不了。后来看到一个博主写到把jsp页面的编码格式改为gbk格式的,试了一下,果然不乱码了。非常开心...但


2.在实现文件下载的时候,因为我是用a标签带参数传到后台的,前端显示都好好的中文,a标签带到后台的中文却成了乱码。我检查了一下所有相关的servlet和jsp页面,除了上传文件的jsp页面是gbk编码的其他都是utf-8的格式,我知道问题肯定出在这,但是除了把jsp页面设置成GBK格式之外,实在找不到什么其他方法解决上传文件中文名乱码这个问题了。于是,对基础传数据传输编码这块一点不懂的我采用各种排列组合方式修改各servlet和jsp编码格式(可能完全是多余的),但我还是这么做了....失败告终!


3.最后,被逼无奈,只得去修改jspsmartupload源码:

①先去官网下了一个反编译工具jd-gui。

②将jspsmartupload.jar包解压出来,用反编译工具读取了.java文件。又存到桌边为.class文件(这样就可以修改源码了)

③按照网上大神们的方法改了两处代码,其实也就是加了一个编码格式为utf-8

④将修改后的smartupload.class文件同其他4个.class(都导了出来)一起放到了eclipse上新建的一个工程下,让eclipse帮我重新编译了一下(最开始尝试用cmd控制台去编译.class文件,出了很多错误,因为smartupload.class中导了很多其他包,没法单个编译,试了一些方法未果就求助了eclipse)。重新编译后,把里面的smartupload.java替换掉了原本的文件,导入工程

⑤用了修改后的jar包,把原本jsp页面的编码格式也改回了utf-8,发现问题解决了,但可能也就是暂时的解决吧,毕竟对数据传输编码这块不了解。


Ps:任重道远...



----来自一个学了3个月java的小渣渣.

阅读全文
0 0
原创粉丝点击