用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来实现文件上传的功能。 首先,理解HTTP协议中的多部分数据是至关重要的。在HTML表单提交文件时,通常会使用`enctype="multipart/form-data"`属性,此时,数据会被分割成...
使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...
### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...
首先,我们要知道ASP.NET中的`<asp:FileUpload>`控件是实现文件上传的核心组件。它可以允许用户从本地计算机选择一个或多个文件,并将这些文件上传到服务器。在多文件上传中,我们需要确保控件的`Multiple`属性设置...
通过以上步骤,你可以成功地使用Apache Commons FileUpload实现文件上传和下载功能,并避免中文乱码问题。在实际开发中,还可以结合Spring MVC或Struts等框架,进一步简化代码和提高代码的可维护性。
我自己编写的jsp页面利用fileupload组建实现文件上传和下载,简单易懂。仅供初学者参考...
Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...
**借助Commons FileUpload组件实现文件上传** Apache Commons FileUpload组件简化了文件上传的处理过程。首先,你需要在项目中引入两个JAR包:`commons-fileupload.jar`和`commons-io.jar`。然后,在Servlet中,你...
本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP...
这个库使得在Java应用程序中实现文件上传变得简单,无论是Web应用还是其他需要接收文件的HTTP服务。下面我们将详细探讨FileUpload的工作原理、如何使用以及其关键特性。 一、工作原理 FileUpload的核心是解析HTTP...
在 ASP.NET Web 应用程序中,经常需要实现文件上传功能,这可以通过使用 `FileUpload` 控件来完成。本文将详细介绍如何使用 `.NET` 中的 `FileUpload` 控件进行单个文件的上传,并存储文件的相关信息,如文件名、...
要实现多文件上传,我们需要对FileUpload控件做一些扩展,因为ASP.NET 2.0原生的FileUpload控件仅支持单个文件上传。一种常见的方法是使用HTML5的`<input type="file" multiple />`特性,这允许用户选择多个文件。...
4. **文件上传流程**:首先,创建一个`DiskFileItemFactory`实例,然后用它创建一个`ServletFileUpload`对象。接着,通过`ServletFileUpload.parseRequest(request)`方法解析HTTP请求,获取到`FileItem`对象列表。每...
使用FileUpload组件实现上传功能,供大家一起共同分享学习。
Java 实现的文件上传下载功能是Web开发中的一个重要部分,主要涉及到HTTP协议、Servlet、文件I/O以及数据库操作等技术。在这个"FileUpLoad"项目中,开发者使用了Struts2框架来处理用户请求,Oracle数据库存储文件元...
"FileUpload多文件上传(2.0)"这个主题聚焦于2.0版本的ASP.NET中,如何使用C#来实现用户友好的多文件上传功能。下面将详细阐述这一技术的关键点。 首先,让我们了解`FileUpload`控件。在ASP.NET中,`FileUpload`控件...
"实现文件上传的fileupload"这个项目旨在提供一个简单易用的解决方案,让用户能够方便地上传文件,甚至可以支持多文件同时上传。这样的功能在很多场景下都非常实用,比如用户在社交媒体分享照片、在云存储服务上传...