近期马上移交一个项目,就差附件上传得时候中文的附件名称显示出来老是乱码,请高手解决 多谢前提我用得是UTF-8编码:在jsp页面头部有<%@ page contentType="text/html; charset=UTF-8"%>相关代码如下:其中我也设置了:request.setCharacterEncoding("gbk");
但是用起来不管用
RequestContext requestContext = new ServletRequestContext(request); if(FileUpload.isMultipartContent(requestContext)){ //get the uploading execel file, and write to temp dir .
FileItemFactory filefactory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(filefactory); //upload.setHeaderEncoding("GBK"); List items = upload.parseRequest(request);
Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); //if it is file field, save the uploading file
if (!item.isFormField()) { String fieldName = item.getFieldName(); if ( fieldName.equalsIgnoreCase( "order_attached_file_url" ) ) {
upfilename = item.getName() ;
//process orderAttached
if ( upfilename != null && ! upfilename.trim().equals( "" ) ) {
int k = -1 ;
k = upfilename.lastIndexOf( File.separator ); //File.separator
if ( k == -1 ) {
attachedFileName = upfilename.trim() ;
}
else {
attachedFileName = upfilename.substring( k + 1 ).trim() ;
}
}
else { // no file attached
attachedFileName = "" ;
} attachedFileName = attachedFileName.replace(':', '_' ) ;
attachedFileName = attachedFileName.replace( File.separatorChar , '_' ) ; if ( attachedFileName != null && ! attachedFileName.trim().equals("") ) {
//save to temp file
realServerPathFileName = request.getRealPath( File.separatorChar + "ecatic" + File.separatorChar + "temp" + File.separatorChar + attachedFileName );
File newFile = new File( realServerPathFileName );
item.write(newFile);
} order_attached_file_url = realServerPathFileName ;
}
在线等 :
但是用起来不管用
RequestContext requestContext = new ServletRequestContext(request); if(FileUpload.isMultipartContent(requestContext)){ //get the uploading execel file, and write to temp dir .
FileItemFactory filefactory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(filefactory); //upload.setHeaderEncoding("GBK"); List items = upload.parseRequest(request);
Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); //if it is file field, save the uploading file
if (!item.isFormField()) { String fieldName = item.getFieldName(); if ( fieldName.equalsIgnoreCase( "order_attached_file_url" ) ) {
upfilename = item.getName() ;
//process orderAttached
if ( upfilename != null && ! upfilename.trim().equals( "" ) ) {
int k = -1 ;
k = upfilename.lastIndexOf( File.separator ); //File.separator
if ( k == -1 ) {
attachedFileName = upfilename.trim() ;
}
else {
attachedFileName = upfilename.substring( k + 1 ).trim() ;
}
}
else { // no file attached
attachedFileName = "" ;
} attachedFileName = attachedFileName.replace(':', '_' ) ;
attachedFileName = attachedFileName.replace( File.separatorChar , '_' ) ; if ( attachedFileName != null && ! attachedFileName.trim().equals("") ) {
//save to temp file
realServerPathFileName = request.getRealPath( File.separatorChar + "ecatic" + File.separatorChar + "temp" + File.separatorChar + attachedFileName );
File newFile = new File( realServerPathFileName );
item.write(newFile);
} order_attached_file_url = realServerPathFileName ;
}
在线等 :
ServletFileUpload upload = new ServletFileUpload(filefactory);
upload.setHeaderEncoding("UTF-8");//一定要设定