方法:

MultipartParser mp = new MultipartParser(request, 10*1024*1024);
mp.setEncoding("GBK"); //加上这行代码即可

示例:

upload.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>enctype属性测试</title>
</head> <body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="cosUpload.jsp">
上传文件: <input type="file" name="file" /><br>
请求参数 <input type="text" name="wawa" /><br>
<input name="dd" type="submit" value="提交" />
</form>
</body>
</html>

cosUpload.jsp

<%@ page contentType="text/html;charset=GBK" import="java.io.*,java.util.*"%>
<%@ page import="com.oreilly.servlet.multipart.*,com.oreilly.servlet.*"%>
<% //设置POST请求的内容最大字节为10M,该类用于解析HTTP请求
MultipartParser mp = new MultipartParser(request, 10*1024*1024);
mp.setEncoding("GBK");
//所有表单域都是Part实例
Part part;
//遍历请求中的所有表单域
while ((part = mp.readNextPart()) != null)
{
//取得表单域的name属性值
String name = part.getName();
//对于普通表单域
if (part.isParam())
{
//取得普通表单域的值
ParamPart paramPart = (ParamPart) part;
String value = paramPart.getStringValue("GBK");
out.print("普通表单域部分:<br> name=" + name + "; value=" + value + "<br>");
}
//对于文件域
else if (part.isFile())
{
//取得文件上传域
FilePart filePart = (FilePart) part;
String fileName = filePart.getFileName();
if (fileName != null)
{
//输出文件内容
long size = filePart.writeTo(new File(request.getRealPath("/")));
out.println("上传文件:<br> 文件域的名=" + name + "; 文件名=" + fileName + "<br>" +
"上传文件的路径=" + filePart.getFilePath() + "<br>" +
"文件内容类型=" + filePart.getContentType() + "<br>" +
"文件大小=" + size + "<br>");
}
//文件名为空
else
{
//该文件域没有输入文件名
out.println("file: name=" + name + "; EMPTY");
}
out.flush();
}
}
%>

FileUpload

对于FileUpload组件,用upload.setHeaderEncoding()来解决文件名的乱码问题

解决COS、FileUpload上传文件时中文文件名乱码问题的更多相关文章

  1. 使用FCKeditor编辑器上传文件时中文文件名乱码

    修改:editor\filemanager\browser\default\frmupload.html 文件的编码改为UTF-8 实在不行:fckeditor/editor/filemanager/ ...

  2. spring clound gateway 上传文件,中文文件名乱码解决办法

    先说解决办法吧: 有三种解决办法 1 ,zuul官方给出了解决方案,使用/zuul开头的请求可以避免中文名乱码以及支持大文件上传 域名是 testgateway.com  接口是  api/image ...

  3. 解决asp.net上传文件时文件太大导致的错误

    即使在web.config中添加了节点和设置依然是不行的,还是报文件太大的错误, <httpModules>       <add name="UploadHttpModu ...

  4. fileupload上传文件时带参数

    var userID = ""; $('#picture').fileupload({ url: "http://localhost:35708/Handler/File ...

  5. struts使用html:file上传文件的时候文件名乱码解决

    <body> <html:form action="/jwid/struts1x/15.3/form/upload.do?action=upload" encty ...

  6. FileUpload上传文件无法获取文件名

    原因:将FileUpload控件放到了UpdatePannel控件中了 解决办法:将FileUpload控件位置移动到UpdatePannel控件外面

  7. 上传文件时$_FILES为空的解决方法

    上传视频的时候打印$_FILES为空,小的文件就没问题,后来发现是因为传的文件太大, 出现这个问题的原因主要有两个:表单原因或者php设置原因: 1,表单类型: 上传文件的表单编码类型必须设置成 en ...

  8. ASP.NET页面上传文件时提示文件大小超过请求解决方法

    在webconfig中节点 <system.web> </system.web> 下加入以下代码:maxRequestLength为限制上传文件大小,executionTime ...

  9. FTP主动模式上传文件时返回"ftp: accept: Resource temporarily unavailable"

    FTP主动模式上传文件时返回 Passive mode off ftp: accept: Resource temporarily unavailable 这个问题要从ftp的2种模式说起 PORT ...

随机推荐

  1. 集成Spring后HibernateTemplate实现分页

    spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate ...

  2. unity 协同

    void Update () { if(Input .GetKeyDown (KeyCode .W )) { StartCoroutine ("Test"); } } IEnume ...

  3. c编程之排序

    1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 typedef struct Nod ...

  4. 开发EXTMVC框架前需要了解的基础知识整理

    1.组件选择器 目的:了解如何选择Extjs中的组件,就跟学习jquery时一定会先要学习:$()选择器一样. 常用场景:       1.在controller中的control事件中用到      ...

  5. Poj 1029 分类: Translation Mode 2014-04-04 10:18 112人阅读 评论(0) 收藏

    False coin Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16418   Accepted: 4583 Descr ...

  6. WPF命令参数CommandParameter

    XAML代码如下: <Window x:Class="Demo006.MainWindow" xmlns="http://schemas.microsoft.com ...

  7. Java Api与HBase交互实例

    import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hb ...

  8. HDOJ 2079 选课时间(母函数)

    选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. 利用Openvswitch实现不同物理机中的Docker容器互连

    1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150 ...

  10. GCD初步认识

    //(1)用异步函数往并发队列中添加任务, //总结:同时开启三个子线程 - (void)test1 { //1.获得全局的并发队列 dispatch_queue_t queue = dispatch ...