您的位置 首页 网络技术

smartupload 乱码

1、上传的文件名如果是中文,那么上传后就是乱码

复制代码

Insert title here

请选择要上传的文件:

 

<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>
<%@ page import=”com.jspsmart.upload.SmartUpload” %>

Insert title here

<% String rootPath = application.getRealPath(“/”); // System.out.println(rootPath); // @Debug SmartUpload smart = new SmartUpload() ; smart.initialize(pageContext) ; // 初始化上传操作 smart.upload() ; // 上传准备 smart.save(rootPath + “\\upload”) ; // 文件保存 %>

上传成功,返回

复制代码

2、如果是如下这种情况,获取的String parameter “name”也是乱码(输入中文的话)

upload.jsp

复制代码

<%@ page language=”java” contentType=”text/html; charset=utf-8″ pageEncoding=”utf-8″%>
<%@ page import=”com.jspsmart.upload.SmartUpload” %>

Insert title here

<% request.setCharacterEncoding(“UTF-8”) ; %>
<% String rootPath = application.getRealPath(“/”); // System.out.println(rootPath); // @Debug SmartUpload smart = new SmartUpload() ; smart.initialize(pageContext) ; // 初始化上传操作 smart.upload() ; // 上传准备 String name = smart.getRequest().getParameter(“uname”); // System.out.println(name); // @Debug SmartUpload smart.save(rootPath + “\\upload”) ; // 文件保存 %>

上传成功,返回

姓名:<%=name %>

 

request.getParameter(“uname”): <%=request.getParameter(“uname”) %>

复制代码

upload.html

复制代码

Insert title here

姓名:
照片:

复制代码

因为使用SmartUpload需要对form使用enctype,导致数据按照纯二进制的方式提交,因此会出现编码问题,而SmartUpload本身的API又没有提供对编码的解决方案。

3、解决方案

使用如下代码,完美解决:

SmartUpload smart = new SmartUpload() ;
smart.setCharset(“UTF-8”); // 或者你需要的编码
搜了一下

一种是修改SmartUpload的源码,让SmartUpload内部解决编码的转换问题,自己编译了再用

第二种就是选择另一款上传工具,比如fileupload

另外,采用JS或者别的方式来传递数据

关于花猫大叔短视频创业 作者: hadoopall

热门文章

发表评论

电子邮件地址不会被公开。