需引入两个jar包:commons-fileupload-1.2.jar和commons-io-1.3.2.jar
以表单提交到servlet中处理为例。
包含文件域的form为:
enctype="multipart/form-data"
STEP1:
实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
DiskFileItemFactory factory = new DiskFileItemFactory();
STEP2:
设置上传文件时用于临时存放文件的内存大小(例如4K),多于的部分将临时存在硬盘
factory.setSizeThreshold(4 * 1024);
STEP3:
设置存放临时文件的目录
factory.setRepository(new File(临时文件目录的绝对路径));
STEP4:
用以上工厂实例化上传组件
ServletFileUpload upload = new ServletFileUpload(factory);
STEP5:
设置最大上传尺寸,如果10M
upload.setSizeMax(10 * 1024 * 1024);
然后,从request得到所有上传域的列表
List<?> fileItemList = upload.parseRequest(request);
得到所有上传的文件
Iterator<?> fileItemIt = fileItemList .iterator();
循环处理所有文件
while (fileItemIt.hasNext()) {
FileItem fileItem = (FileItem) fileItr.next();
fileItem:
1. 判断是否是文件域:isFormField()
2. 文件的完整路径:getName()
3. 文件的大小:getSize()
保存上传而来的文件:
fileItem.write(new File(
新文件的绝对路径
));
}
当提交的form包含其他域(如<input type="text">或<input type="submit">)时,通过isFormField()方法判断后进行处理。
>>>>>2011 - 06 - 11更新:
用Apache Commons FileUpload来实现文件上传的时候,往往会遇到一些中文乱码的问题,有可能是获取的文件路径或者文件名称为乱码,也有可能获取的表单字段为乱码,以UTF-8编码为例,解决的办法如下:
调用FileUpload.settingHeaderEncoding("UTF-8"),这项设置可以解决路径或者文件名为乱码的问题。
在取字段值的时候,用FileItem.getString("UTF-8"),这项设置可以解决获取的表单字段为乱码的问题。
request.setCheracterEncoding("utf-8");
DiskFileUpload.setHeaderEncoding("utf-8");
FileItem.getString("utf-8");
分享到:
相关推荐
FileUpload 文件上传组件的ASP.NET实例,基于主副窗口的上传程序,利用线程提升上传... ASP.NET FileUpload上传图片并解决上传限制 解决FileUpload控件上传文件大小限制 ASP.NET中实现FileUpload多文件上传
文件上传的应用,asp.net中利用Fileupload实现的文件上传
用commons-fileupload实现文件上传功能,两个文件搞定!!!!
博文链接:https://mqzsweet.iteye.com/blog/141965
vue-base64-file-upload - 利用Vue.js将上传文件作为base64 data-uris
我自己编写的jsp页面利用fileupload组建实现文件上传和下载,简单易懂。仅供初学者参考...
http://blog.csdn.net/alanchen520/article/details/34409913
//检查当前项目是普通表单项目还是上传文件。 if (item.isFormField()) {//如果是普通表单项目,显示表单内容。 String fieldName = item.getFieldName(); if (fieldName.equals("name")) //对应demo1.html中...
NULL 博文链接:https://weideming.iteye.com/blog/1229692
1、利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,前台代码是Jsp,后台是用servlet处理,共2个例子,各有不同,比较使用; 2、有用jspSmartupload制作一个文件上传和下载的例子,其制作...
关键是正对最新版webwork,在action中进行操作,说得很细致,有源代码实例。也将异常情况处理列出来了。
利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,共两个例子,个有不同,费用使用。另有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中。
源码 博文链接:https://lisanlai.iteye.com/blog/660238
NULL 博文链接:https://412887952-qq-com.iteye.com/blog/1366123
利用c#的fileupload控件,进行文件上传,主要是熟悉fileupload控件属性和用法。
利用servlet实现的commons-fileupload的实例。也就是文件上传实例。
于是就下载下来看了看,果然效果不错,不但支持吵过700M的文件上传快速,更重要的是支持多线程的上传文件。查看源代码发现利用的控件也是fileupload的控件,但是处理的过程调用的是RadUpload.Net2.dll处理的。上传后...
在一个表单中包含普通文本数据,另外还有需要上传的图片,那么本程序通过commons-fileupload 相关jar...程序中还包括表单中普通文本数据的获取,文件、文本能一起上传到服务器上进行处理。 (完整程序demo,可直接运行)