html:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"> <TITLE>File Upload Page</TITLE>
</HEAD>
<BODY>Upload Files
<FORM name="filesForm" action="ProcessFileUpload.jsp" method="post" enctype="multipart/form-data">
File 1:<input type="file" name="file1"/><br/>
<input type="submit" name="Submit" value="Upload Files"/>
</FORM>
</BODY>
</HTML>jsp:<%@ page contentType="text/html; charset=gb2312" language="java"
import="org.apache.commons.fileupload.*,
org.apache.commons.fileupload.FileItem,
java.util.List,
java.util.Iterator,
java.io.*"
%>
<%@ page import="org.apache.commons.io.*" %>
<html>
<head><title>Process File Upload</title>
</head>
<%
System.out.println("Content Type ="+request.getContentType());
try{
DiskFileUpload fu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(-1);
// 设置最多只允许在内存中存储的数据,单位:字节
System.out.println("encoding:"+request.getCharacterEncoding());
fu.setHeaderEncoding(request.getCharacterEncoding());
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("e:\\temp");
//开始读取上传信息
List fileItems = fu.parseRequest(request);
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
System.out.println(name);
name=FilenameUtils.getName(name);
System.out.println(new String(name.getBytes("gb2312"), "iso8859_1"));
System.out.println("name2/:"+name);
String storePath="e:\\UploadTest";
File store= new File(storePath);
if(!store.exists()){
if(store.mkdirs())
System.out.println("文件目录成功!");
}
String name1=storePath+File.separator+ name;
System.out.println(name1);
File test=new File(name1);
item.write(test);
}
}
} catch(Exception e){
e.printStackTrace();
}
%>
<body>
成功!!
</body>
</html>上传后中文文件名变成: 海军通信军代表信息系统用户需求说明书怎么解决阿?如何转码? 我request得到编码就是gb2312呀
fu.setHeaderEncoding(request.getCharacterEncoding());已经设置为gb2312了
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"> <TITLE>File Upload Page</TITLE>
</HEAD>
<BODY>Upload Files
<FORM name="filesForm" action="ProcessFileUpload.jsp" method="post" enctype="multipart/form-data">
File 1:<input type="file" name="file1"/><br/>
<input type="submit" name="Submit" value="Upload Files"/>
</FORM>
</BODY>
</HTML>jsp:<%@ page contentType="text/html; charset=gb2312" language="java"
import="org.apache.commons.fileupload.*,
org.apache.commons.fileupload.FileItem,
java.util.List,
java.util.Iterator,
java.io.*"
%>
<%@ page import="org.apache.commons.io.*" %>
<html>
<head><title>Process File Upload</title>
</head>
<%
System.out.println("Content Type ="+request.getContentType());
try{
DiskFileUpload fu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(-1);
// 设置最多只允许在内存中存储的数据,单位:字节
System.out.println("encoding:"+request.getCharacterEncoding());
fu.setHeaderEncoding(request.getCharacterEncoding());
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("e:\\temp");
//开始读取上传信息
List fileItems = fu.parseRequest(request);
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
System.out.println(name);
name=FilenameUtils.getName(name);
System.out.println(new String(name.getBytes("gb2312"), "iso8859_1"));
System.out.println("name2/:"+name);
String storePath="e:\\UploadTest";
File store= new File(storePath);
if(!store.exists()){
if(store.mkdirs())
System.out.println("文件目录成功!");
}
String name1=storePath+File.separator+ name;
System.out.println(name1);
File test=new File(name1);
item.write(test);
}
}
} catch(Exception e){
e.printStackTrace();
}
%>
<body>
成功!!
</body>
</html>上传后中文文件名变成: 海军通信军代表信息系统用户需求说明书怎么解决阿?如何转码? 我request得到编码就是gb2312呀
fu.setHeaderEncoding(request.getCharacterEncoding());已经设置为gb2312了
{
var theFile = filePath;//.toLowerCase();
var fileName = ""; if(theFile.length == 0)
{
showInfo("请选择所要上传的文件!");
}
else
{
if(theFile.indexOf(".") > 0)// && theFile.length == theFile.indexOf(".") + 4
{
fileName = theFile.substring(theFile.lastIndexOf("\\") + 1,theFile.length);
}
else
{
showInfo("你所指定的文件不是正确文件,请选择正确的文件,扩展名应当为XXX\t");
}
}
//showDebugInfo("fileName:" + fileName);
return fileName;
}