`
zhongdw
  • 浏览: 8082 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

用FileUpload实现文件上传

阅读更多
用apache的一个开源项目fileupload可以轻松的实现文件的上传,可以到apache的网站下载。

import java.io.File;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadFile extends MappingDispatchAction ...{
    private static final int FILE_SIZE = 4194304;
    public ActionForward upload(ActionMapping mapping, ActionForm form,
            HttpServletRequest request,HttpServletResponse response) ...{
    
        try ...{
            
            DiskFileItemFactory fc = new DiskFileItemFactory();
            //设置文件的最大限度,如果超出这个限度,则将文件写入磁盘
            fc.setSizeThreshold(4000);
            //文件超过最大限度时,写入磁盘的临时路径
            fc.setRepository(new File("E:\tmp"));

            ServletFileUpload fu = new ServletFileUpload(fc);
            //设置最大文件尺寸,单位为字节,这里是4MB
            fu.setSizeMax(FILE_SIZE);
            
            //得到所有的文件:
            List fileItems = fu.parseRequest(request);
            Iterator i = fileItems.iterator();
            //依次处理每一个文件:
            while(i.hasNext()) ...{
                FileItem fi = (FileItem)i.next();
                //获得文件名,这个文件名包括路径:
                String fileName = fi.getName();
                if (fi.getSize() > FILE_SIZE)
                    throw new Exception("File is too large!");
                fileName = fileName.substring(fileName.lastIndexOf("\") + 1, fileName.length());
            
                //写入文件
                fi.write(new File("e:\tmps\" + fileName));
                
            }
        
            
        } catch (Exception e) ...{
            // TODO Auto-generated catch block
            e.printStackTrace();
            return mapping.findForward("uploadFail");
        } 

        return mapping.findForward("success");
    }
}


JSP页面代码:
<%...@ page pageEncoding="utf-8"%>

<html>
    <body>
        <form action="upload.do" method="post" enctype="multipart/form-data">
            <center>
            选择文件路径:
            <input type=file name="filename"/><br>
            <input type=submit value="上传"/>
            </center>
            
        </form>
    </body>
</html>
分享到:
评论

相关推荐

    commons-fileupload实现文件上传

    本篇将详细讲解如何使用Commons FileUpload来实现文件上传的功能。 首先,理解HTTP协议中的多部分数据是至关重要的。在HTML表单提交文件时,通常会使用`enctype="multipart/form-data"`属性,此时,数据会被分割成...

    使用fileupload组件实现文件上传功能

    使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...

    commons-fileupload实现文件上传下载

    ### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...

    C# .NET FileUpload 多文件上传例子

    首先,我们要知道ASP.NET中的`&lt;asp:FileUpload&gt;`控件是实现文件上传的核心组件。它可以允许用户从本地计算机选择一个或多个文件,并将这些文件上传到服务器。在多文件上传中,我们需要确保控件的`Multiple`属性设置...

    使用commons-fileupload实现的文件上传和下载

    通过以上步骤,你可以成功地使用Apache Commons FileUpload实现文件上传和下载功能,并避免中文乱码问题。在实际开发中,还可以结合Spring MVC或Struts等框架,进一步简化代码和提高代码的可维护性。

    fileupload实现文件上传和下载

    我自己编写的jsp页面利用fileupload组建实现文件上传和下载,简单易懂。仅供初学者参考...

    struts1.2和commons-fileupload实现文件上传

    Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...

    commons fileupload实现文件上传的实例代码

    **借助Commons FileUpload组件实现文件上传** Apache Commons FileUpload组件简化了文件上传的处理过程。首先,你需要在项目中引入两个JAR包:`commons-fileupload.jar`和`commons-io.jar`。然后,在Servlet中,你...

    commons-fileupload文件上传实例

    本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP...

    Apache Commons fileUpload实现文件上传

    这个库使得在Java应用程序中实现文件上传变得简单,无论是Web应用还是其他需要接收文件的HTTP服务。下面我们将详细探讨FileUpload的工作原理、如何使用以及其关键特性。 一、工作原理 FileUpload的核心是解析HTTP...

    .net使用FileUpLoad控件上传文件

    在 ASP.NET Web 应用程序中,经常需要实现文件上传功能,这可以通过使用 `FileUpload` 控件来完成。本文将详细介绍如何使用 `.NET` 中的 `FileUpload` 控件进行单个文件的上传,并存储文件的相关信息,如文件名、...

    Asp.net 2.0 用FileUpload 控件实现多文件上传

    要实现多文件上传,我们需要对FileUpload控件做一些扩展,因为ASP.NET 2.0原生的FileUpload控件仅支持单个文件上传。一种常见的方法是使用HTML5的`&lt;input type="file" multiple /&gt;`特性,这允许用户选择多个文件。...

    commons fileupload实现文件上传

    4. **文件上传流程**:首先,创建一个`DiskFileItemFactory`实例,然后用它创建一个`ServletFileUpload`对象。接着,通过`ServletFileUpload.parseRequest(request)`方法解析HTTP请求,获取到`FileItem`对象列表。每...

    使用FileUpload组件实现上传功能

    使用FileUpload组件实现上传功能,供大家一起共同分享学习。

    java实现的文件上传下载FileUpLoad

    Java 实现的文件上传下载功能是Web开发中的一个重要部分,主要涉及到HTTP协议、Servlet、文件I/O以及数据库操作等技术。在这个"FileUpLoad"项目中,开发者使用了Struts2框架来处理用户请求,Oracle数据库存储文件元...

    FileUpload多文件上传(2.0)

    "FileUpload多文件上传(2.0)"这个主题聚焦于2.0版本的ASP.NET中,如何使用C#来实现用户友好的多文件上传功能。下面将详细阐述这一技术的关键点。 首先,让我们了解`FileUpload`控件。在ASP.NET中,`FileUpload`控件...

    实现文件上传的fileupload

    "实现文件上传的fileupload"这个项目旨在提供一个简单易用的解决方案,让用户能够方便地上传文件,甚至可以支持多文件同时上传。这样的功能在很多场景下都非常实用,比如用户在社交媒体分享照片、在云存储服务上传...

Global site tag (gtag.js) - Google Analytics