Jsp 使用commons-fileupload实现文件上传

本文档介绍了如何在Java Web项目中利用commons-fileupload库进行文件上传。首先,需要添加commons-fileupload和commons-io的jar包到项目库。接着,创建index.jsp页面,设置表单以multipart/form-data方式提交。然后,编写upload.jsp处理上传请求,通过ServletFileUpload解析请求,获取并保存上传文件。最后,展示了index.jsp和upload.jsp的源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 新建javaweb项目FileUpload
  2. 使用commons-fileupload时,需要使用commons-io的jar文件。下载commons-io
  3. commons-fileupload的官方下载:fileupload官方下载。网站上还有user guide,可以仔细的看一下。
  4. 将下载的两个jar包添加到项目库中。
  5. 编写两个jsp页面,index.jsp,upload.jsp。
  6. index编写所需的表单,即提供上传文件请求的表单。下面说一下文件上传组件的基本流程: 
    创建 factory
    由 factory 创建 upload
    由 upload 解析 request
  7. index.jsp源代码如下:
    <html>
    <head>
    <title>JSP Page</title>
    </head>
    <body>
    使用Commons FileUpload上传文件:
    <form action="upload.jsp" method="post" enctype="multipart/form-data">
    <input type="file" name="file1"/><br>
    <input type="submit" name="submit"/><br>
    </body>
    </html>

  8. upload.jsp源代码如下:
    <%@page import="org.apache.commons.fileupload.FileItem"%>
    <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
    <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
    <%@page import="java.util.Iterator"%>
    <%@page import="java.util.List"%>
    
    <%@page import="java.io.File"%>
    
    <%@page contentType="text/html" pageEncoding="gb2312"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <title>upload Page</title>
        </head>
        <body>
            <%
                DiskFileItemFactory factory = new DiskFileItemFactory();//建立一个新的文件上传句柄
                File dir = new File("E:");//建立上传文件的存放位置
                factory.setRepository(dir);// 设置存放临时文件的目录
                ServletFileUpload upload = new ServletFileUpload(factory);// 用以上工厂实例化上传组件
                List list = upload.parseRequest(request);//从request得到所有上传域的列表
                Iterator iter = list.iterator();// 得到所有上传的文件
                while (iter.hasNext()) {//循环处理所得到的的文件信息
                    FileItem item = (FileItem)iter.next();
                    if (!item.isFormField()) {//文件域的处理
                        String name = item.getName();
                        out.print(name);
                        item.write(new File(dir, name));
                    }
                }
                out.print("上传成功!");
            %>
        </body>
    </html>
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值