上传文件的文件时,文件名变成乱码了,我用jspsmart.upload组件上传文件时,文件名变成乱码了?
代码
login.jsp
///////////////////////////////////////////////////////
<%@ taglib uri= "http://java.sun.com/jsf/core " prefix= "f " %>
<%@ taglib uri= "http://java.sun.com/jsf/html " prefix= "h " %>
<%@ taglib uri= "http://myfaces.apache.org/tomahawk " prefix= "t "%>
<%@ page import= "util.HTMLFilter,java.util.ArrayList " %>
<%@ page language= "java " contentType= "text/html; charset=UTF-8 "
pageEncoding= "UTF-8 "%>
<%@ page import= "org.apache.commons.fileupload.* "%>
<%@ page import= "java.util.* "%>
<%@ page import= "java.io.*,com.jspsmart.upload.* "%>
<html xmlns= "http://www.w3.org/1999/xhtml ">
<link REL= "SHORTCUT ICON " href= "images/pbi_logo.gif ">
<f:loadBundle basename= "#{headerMgrBean.languageFileName} "
var= "customLanguge "> </f:loadBundle>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=UTF-8 ">
<link href= "default.css " rel= "stylesheet " type= "text/css "/>
<style type= "text/css ">
<!--
BODY {
BACKGROUND-COLOR: #cccccc
}
.STYLE3 {font-family: Arial, Helvetica, sans-serif}
-->
</style>
</head>
<body style= "TABLE-LAYOUT: fixed; WORD-BREAK: break-all " topMargin=6
marginwidth= "10 " marginheight= "10 ">
<p align= "center "> <font color= "#660000 " size= "5 " face= "隶书 "> 上传文件选择 </font> </p>
<form method= "post " ACTION= "7-7.jsp " enctype= "multipart/form-data ">
<input type= "hidden " name= "Test " value= "good " />
<table width = "75% " border= "1 " align= "center ">
<tr> <td>
<div align= "center "> 1.
<input type= "file " name= "FILE1 " size= "30 " > </div>
</td> </tr>
<tr> <td>
<div align= "center "> 2.
<input type= "file " name= "FILE2 " size= "30 " > </div>
</td> </tr>
<tr> <td>
<div align= "center "> 3.
<input type= "file " name= "FILE3 " size= "30 " > </div>
</td> </tr>
<tr> <td>
<div align= "center "> 4.
<input type= "file " name= "FILE4 " size= "30 " > </div>
</td> </tr>
<tr> <td>
<div align= "center ">
<input type= "submit " name= "Sumit " value= "上传 " >
</div>
</td> </tr>
</table>
</form>
</body>
</html>
///////////////////////////////////////////////////
7-7.jsp
///////////////////////////////////////////////////
<%@ page language= "java " contentType= "text/html; charset=gb2312 "
import= "java.util.*,com.jspsmart.upload.* "%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html>
<head>
<title> Insert title here </title>
</head>
<body>
<%
SmartUpload su=new SmartUpload();
su.initialize(pageContext);
su.upload();
int count=su.save(request.getRealPath( " ")+ "/WEB-INF/upload/ ");
out.println( "TEST = "+su.getRequest().getParameter( "Test ")+ " <BR> <BR> ");
for(int i=0;i <su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file=su.getFiles().getFile(i);
if(file.isMissing())continue;
out.println( " <table border=1> ");
out.println( " <tr> <td> Form(FieldName) </td> <td> "+file.getFieldName()+ " </td> </tr> ");
out.println( " <tr> <td> file size </td> <td> "+file.getSize()+ " </td> </tr> ");
out.println( " <tr> <td> file name </td> <td> "+file.getFileName()+ " </td> </tr> ");
out.println( " <tr> <td> file Ext </td> <td> "+file.getFileExt()+ " </td> </tr> ");
out.println( " <tr> <td> file all name </td> <td> "+file.getFilePathName()+ " </td> </tr> ");
out.println( " </table> <br> ");
}
%>
</body>
</html>
///////////////////////////////////////////////////
如果我上传 贺爽6.18-6.22 周报.xls 变成了 璐虹6.18-6.22 ㄦ.xls 英文没事,这是怎么回事啊
[解决办法]
request.setEncoding( "GBK ");
[解决办法]
我们今天讲了这个,但是程序不太复杂,我是将东西用的gb2312。我写了个过滤器,用的也是gb2312的编码你试一下
[解决办法]
我的不会啊,
你看看自带的demo看看
[解决办法]
http://blog.csdn.net/qiudawei115里面有一片 关于这个的,再jsp分类中
[解决办法]
TOMCAT默认情况下是不支持中文文件名的访问的,你必须对它使用的编码进行修改,需要在server.xml中的 <Connector> 元素中添加一个设置选项
URIEncoding= "UTF-8 " useBodyEncodingForURI= "true "