首页 > Web开发 > 详细

cos实现文件上传--推荐

时间:2014-12-08 22:55:08      阅读:386      评论:0      收藏:0      [点我收藏+]

1、导包

bubuko.com,布布扣

2、核心类:MultipartRequest

    MultipartRequest是request的包装类

bubuko.com,布布扣

  参数1:request

  参数2:保存路径

  参数3:上传文件大小,默认为1M

  参数4:编码

  参数5:重命名FileRenamePolicy,默认重命名格式是在名字后面加数字

参数可以根据需要进行

3、与Apache-upload相比

  1、可以直接上传多文件,不用遍历

  2、获取text等简单文本不用判断

  3、可默认命名

4、Demo

 1 String path=getServletContext().getRealPath("file");
 2             FileRenamePolicy rename=new DefaultFileRenamePolicy();//默认重命名,在名字后面加1,2如:名字.jpg、名字1.jpg、名字2.jpg
 3             MultipartRequest req=new MultipartRequest(request, path, 1024*1024*10, "utf-8", rename);
 4             
 5             //获取上传文件信息
 6             response.setContentType("text/html;charset=utf-8");
 7             PrintWriter out= response.getWriter();
 8             out.write("文件名:"+req.getOriginalFileName("file"));
 9             out.write("<br/>新文件名:"+req.getFilesystemName("file"));
10             out.write("<br/>文件类型:"+req.getContentType("file"));
11             out.write("<br/>文件大小:"+req.getFile("file").length());
12             out.write("<br/>说明:"+req.getParameter("desc"));
13              out.write("<img src= ‘"+request.getContextPath()+"/file/"+req.getFilesystemName("file")+"‘></img>");
14     

在上面的代码中,如果上传的是中文命名的图片,则无法正常显示,所以我们需要重新命名,实现FileRenamePolicy接口

 1 class MyReName implements FileRenamePolicy
 2 {
 3     public File rename(File file) {
 4         String fileName=file.getName();
 5         String extName=fileName.substring(fileName.lastIndexOf("."));
 6         String uuid=UUID.randomUUID().toString().replace("-", "");
 7         String newName=uuid+extName;
 8         file=new File(file.getParent(), newName);
 9         return file;
10     }
11     
12 }

调用重命名

MultipartRequest req=new MultipartRequest(request, path, 1024*1024*10, "utf-8", new MyReName());

 

cos实现文件上传--推荐

原文:http://www.cnblogs.com/liuwt365/p/4152035.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!