快速业务通道

Apache Commons fileUpload实现文件上传 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

Apache Commons fileUpload实现文件上传

时间:2011-03-07 zhangjunhd

将Apache的commons-fileupload.jar放在应用程序的WEB-INF\lib下,即可使用。下面举例介绍如何使用它的文件上传功能。

所使用的fileUpload版本为1.2,环境为Eclipse3.3+MyEclipse6.0。FileUpload 是基于 Commons IO的,所以在进入项目前先确定Commons IO的jar包(本文使用commons-io-1.3.2.jar)在WEB-INF\lib下。

此文作示例工程可在文章最后的附件中下载。

示例1

最简单的例子,通过ServletFileUpload静态类来解析Request,工厂类FileItemFactory会对mulipart类的表单中的所有字段进行处理,不只是file字段。getName()得到文件名,getString()得到表单数据内容,isFormField()可判断是否为普通的表单项。

demo1.html

<html> <head>    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">    <title>File upload</title> </head> <body>     //必须是multipart的表单数据。    <form name="myform" action="demo1.jsp" method="post"     enctype="multipart/form-data">     Your name: <br>     <input type="text" name="name" size="15"><br>     File:<br>     <input type="file" name="myfile"><br>     <br>     <input type="submit" name="submit" value="Commit">    </form> </body> </html>

demo1.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%> <%@ page import="org.apache.commons.fileupload.*"%> <%@ page import="org.apache.commons.fileupload.servlet.*"%> <%@ page import="org.apache.commons.fileupload.disk.*"%> <%@ page import="java.util.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%    boolean isMultipart = ServletFileUpload.isMultipartContent(request);//检查输入请求是否为multipart表单数据。    if (isMultipart == true) {     FileItemFactory factory = new DiskFileItemFactory();//为该请求创建一个DiskFileItemFactory对象,通过它来解析请求。执行解析后,所有的表单项目都保存在一个List中。     ServletFileUpload upload = new ServletFileUpload(factory);     List<FileItem> items = upload.parseRequest(request);     Iterator<FileItem> itr = items.iterator();     while (itr.hasNext()) {       FileItem item = (FileItem) itr.next();       //检查当前项目是普通表单项目还是上传文件。       if (item.isFormField()) {//如果是普通表单项目,显示表单内容。     String fieldName = item.getFieldName();     if (fieldName.equals("name")) //对应demo1.html中type="text" name="name"       out.print("the field name is" + item.getString());//显示表单内容。     out.print("<br>");       } else {//如果是上传文件,显示文件名。     out.print("the upload file name

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号