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

 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>
时间: 2024-10-29 09:55:57

用 Commons-FileUpload 组件控制文件上传的相关文章

使用Commons FileUpLoad组件实现文件上传功能

Commons 是Apache开放的源码组织的一个java子项目,该项目主要涉及一些开发中常用的模块,如文件上传,命令行处理,数据库连接池等.FileUpLoad就是其中的一个用于处理HTTP文件上传的子项目.Commons FileUpLoad组建具有以下几个特点: 1.使用简单:Commons FileUpLoad组件可以方便的嵌入JSP文件中,在JSP文件中仅编写少量代码就可完成文件上传功能,十分方便. 2.能够全程控制上传的内容:使用Commons FileUpLoad组件提供的对象及操

使用commons-fileupload-1.2.1.jar等组件实现文件上传

使用的主要jar包:commons-io-1.3.2.jar包;commons-fileupload-1.2.1.jar包:commons-lang-2.3.jar,在使用组件实现文件上传时候要注意前后台的一致性,注意在后台定义File文件对象名要与jsp页面中的file标签name名字一致,前台form标签属性一定要设置为enctype="multipart/form-data",而且传输方式必须是post方式.不然后台不认为提交的是文件类型,而认为是普通表单的提交. 废话不多说看主

用Commons-FileUpload组件实现文件上传

一.用Commons-FileUpload组件实现文件上传 1.导入两个jar包 FileUpload下载地址: http://commons.apache.org/fileupload/ 下载:commons-fileupload-1.2.2-bin.zip    得到:commons-fileupload-1.2.2.jar http://commons.apache.org/io/ 下载:commons-io-1.4-bin.zip       得到:commons-io-1.4.jar

jquery组件WebUploader文件上传用法详解

这篇文章主要为大家详细介绍了jquery组件WebUploader文件上传用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件,下文来为各位演示一下关于jquery WebUploader文件上传组件的用法. 使用WebUploader还可以批量上传文件.支持缩略图等等众多参数选项可设置,以及多个事件方法可调用,你可以随心所欲的定制你要的上传组件. 接下来我以图片上

jsp实现文件上传(二)用cos组件实现文件上传

jsp表单 <%@ page language="java" pageEncoding="utf-8"%> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <form action="cos.jsp" method="post" en

iview Upload组件多文件上传,以及vue文件下载

iview Upload组件多文件上传 系统经常遇到文件上传的问题,iview提供了Upload组建,能够很好的实现文件上传,当然一次上传多个文件也是允许的. 思路:创建一个数组 把需要上传的文件 push到这个数组里面 1.引用组件 2.手动上传,根据官方文档 设置:before-upload ="handleUpload"等于false (1).:before-upload 是 iview Upload 上传组件的一个属性 设置返回值为 false 可以阻止默认上传方式(自动上传模

MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传

本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: 处理文件上传的服务端组件Backload 用于处理文件上传的服务端组件.Backload与客户端文件上传插件(比如jQuery-File-Upload)配合使用,初步形成一个处理文件异步上传的解决方案. □ Badkload的一些功能和特点 ● 零配置:Backload提供默认BackloadDemoController用来处理上传文件请求.如果其它控制器也想拥有"B

dwz+jquery+fileupload+springmvc实现文件上传 及图片预览

1 前台jsp:文件的上传利用了iframe实现局部刷新功能.使用了apache的fileupload组件,用到的jar: commons-fileupload.jar,commons-io.jarDiskFileItemFactory fac = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(fac);upload.setHeaderEncoding("utf-8"); Html代

Java使用Commons-FileUpload组件实现文件上传最佳方案

学习的目标 使用commons-fileupload实现文件上传 使用commons-fileupload封装文件上传工具类 什么是commons-fileupload? The CommonsFileUploadpackage makes it easy to add robust, high-performance, file upload capability to your servlets and web applications. FileUpload parses HTTP req