码迷,mamicode.com
首页 > Web开发 > 详细

用 Commons-FileUpload 组件控制文件上传

时间:2016-04-25 06:40:28      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

 1     request.setCharacterEncoding("utf-8");
 2     String uploadFileName = ""; //上传的文件名
 3     String fieldName = "";  //表单字段元素的name属性值
 4     //请求信息中的内容是否是multipart类型
 5     boolean isMultipart = ServletFileUpload.isMultipartContent(request);
 6     //上传文件的存储路径(服务器文件系统上的绝对文件路径)
 7     String uploadFilePath = request.getSession().getServletContext().getRealPath("upload/" );
 8     //创建临时文件目录路径
 9     File tempPatchFile=new File("d:\\temp\\buffer\\");
10     if(!tempPatchFile.exists())  //判断文件或目录是否存在
11         tempPatchFile.mkdirs();   //创建指定的目录,包括所有必需但不存在的父目录
12     if (isMultipart) {
13         DiskFileItemFactory factory=new DiskFileItemFactory();
14         //设置缓冲区大小4kb
15         factory.setSizeThreshold(4096);   
16         //设置上传文件用到临时文件存放路径
17         factory.setRepository(tempPatchFile);   
18         ServletFileUpload upload = new ServletFileUpload(factory);
19         //设置单个文件的最大限制
20         upload.setSizeMax(1024*30);   
21         try {
22             //解析form表单中所有文件
23             List<FileItem> items = upload.parseRequest(request);
24             Iterator<FileItem> iter = items.iterator();
25             while (iter.hasNext()) {   //依次处理每个文件
26                 FileItem item = (FileItem) iter.next();
27                 if (!item.isFormField()){  //文件表单字段
28                     String fileName = item.getName();
29                     //通过Arrays类的asList()方法创建固定长度的集合
30                     List<String> filType=Arrays.asList("gif","bmp","jpg");
31                     String ext=fileName.substring(fileName.lastIndexOf(".")+1);
32                     if(!filType.contains(ext))  //判断文件类型是否在允许范围内
33                             out.print("上传失败,文件类型只能是gif、bmp、jpg");
34                     else{
35                         if (fileName != null && !fileName.equals("")) {
36                             File fullFile = new File(item.getName());
37                             File saveFile = new File(uploadFilePath, fullFile.getName());
38                             item.write(saveFile);
39                             uploadFileName = fullFile.getName();
40                             out.print("上传成功后的文件名是:"+uploadFileName+
41                             ",文件大小是:"+item.getSize()+"bytes!");
42     
43                         }        
44                     }
45                 }
46             }
47         }catch(FileUploadBase.SizeLimitExceededException ex){
48             out.print("上传失败,文件太大,单个文件的最大限制是:"+upload.getSizeMax()+"bytes!");    
49         }catch (Exception e) {
50             e.printStackTrace();
51         }
52     }
53 
54    <form action="doupload.jsp" enctype="multipart/form-data" method="post">
55            <!--<p>姓名:<input type="text" name="user"></p>  --> 
56            <p>选择图片:<input type="file" name="nfile"></p> 
57            <p><input type="submit" value="提交"></p>
58    </form>

 

用 Commons-FileUpload 组件控制文件上传

标签:

原文地址:http://www.cnblogs.com/zhouzhuang/p/5429107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!