fileupload上传中文文件名乱码问题
2013-04-20 15:32
411 查看
package com.wildcat.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { DiskFileItemFactory factory=new DiskFileItemFactory(); String path=request.getRealPath("/upload"); factory.setRepository(new File(path)); factory.setSizeThreshold(1024*1024); ServletFileUpload upload=new ServletFileUpload(factory); // 这里就是中文文件名处理的代码,其实只有一行,serheaderencoding就可以了 upload.setHeaderEncoding("utf-8"); try{ List <FileItem> list=(List <FileItem>)upload.parseRequest(request); for(FileItem item:list){ String name=item.getFieldName();//调教的文本 域名 if (item.isFormField()){//如果上传的是文本域 String value=item.getString();//提交的内容 System.out.println(name+" : "+value); request.setAttribute(name, value); }else {//如果上传的是文件 String value=item.getName(); //下面是对特殊浏览器的处理 int start=value.lastIndexOf("\\"); String fileName=value.substring(start+1); request.setAttribute(name, fileName); //写入指定目录 item.write(new File(path,fileName)); /* OutputStream os=new FileOutputStream(new File(path,fileName)); InputStream in=item.getInputStream(); byte [] buffer=new byte[400]; long sumL=item.getSize(); int length=0; double sumR = 0; while((length=in.read(buffer))!=-1){ sumR+=length; //下面百分比可以显示进度 System.out.println(sumR/sumL); os.write(buffer, 0, length); } in.close(); os.close(); */ } } }catch(Exception e){ e.printStackTrace(); } request.getRequestDispatcher("fileuploadResult.jsp").forward(request, response); } }
相关文章推荐
- 解决COS、FileUpload上传文件时中文文件名乱码问题
- Commons-fileupload组件上传中文文件名乱码问题
- Commons-fileupload组件上传中文文件名乱码问题
- fileupload上传中文文件名时乱码问题
- fileupload上传中文文件名乱码问题
- 解决swfupload上传控件文件名中文乱码问题
- java commons-fileupload 上传时的中文乱码问题
- PHP——上传中文文件名乱码问题解决
- php上传中文文件名乱码问题处理方案
- HttpClient 4.3.* 上传带中文文件名文件文件名乱码问题的解决
- 使用Springmvc和commons-fileupload-1.2.2.jar实现上传文件时,中文文件名乱码
- php上传文件名中文乱码问题
- 中文乱码问题(使用Servlet3.0新特性实现文件上传——上传文件名中文乱码问题)
- 解决中文文件名上传到模拟器变乱码的问题
- 解决httpclient上传文件的时候中文文件名乱码的问题
- 解决上传文件时服务端中文文件名乱码问题
- php上传中文文件名乱码问题处理方案
- 使用enterprisedt上传到ftp服务器中文文件名异常、乱码问题解决
- httpclient上传文件及文件名中文乱码问题
- commons-FileUpload文件上传下载,及中文乱码、IE7路径错误问题解决