<html> <head></head> <body> <s:fielderror /> <s:form action="FileUploadAction" method="post" enctype="multipart/form-data"> <s:file name="file" label="File" /> <s:submit/> </s:form> </body> </html>
<action name="FileUploadAction" class="fileUploadAction"> <!-- 配置 fileupload 的拦截器 --> <interceptor-ref name="fileUpload"> <!-- 可以支持上传的文件类型 --> <param name="allowedTypes"> image/bmp,image/png,image/gif,image/jpeg,image/jpg </param> <!-- 设置上传文件的大小不能超过1M --> <param name="maximumSize">1024*1024</param> </interceptor-ref> <interceptor-ref name ="defaultStack" /> <param name="savePath">/upload</param> <result name="success">/successFileUpload.jsp</result> <result name="input">/fileUpload.jsp</result> </action>
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("all") @Scope("prototype") @Controller("fileUploadAction") public class FileUploadAction extends ActionSupport { @Override public String execute() throws Exception { if (file != null) { InputStream in = null; OutputStream out = null; try { in = new BufferedInputStream(new FileInputStream(getFile())); out = new BufferedOutputStream(new FileOutputStream(getSavePath() + "//" + getFileFileName())); byte [] buff = new byte[1024]; int len = 0; while ((len = in.read(buff)) > 0) { out.write(buff, 0, len); } out.flush(); } catch(Exception ex) { ex.printStackTrace(); } finally { in.close(); out.close(); } return SUCCESS; } return INPUT; } private File file; private String fileFileName; private String fileContentType; private String savePath; public File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } public String getFileContentType() { return fileContentType; } public void setFileContentType(String fileContentType) { this.fileContentType = fileContentType; } public void setSavePath(String savePath) { this.savePath = savePath; } public String getSavePath() { return ServletActionContext.getServletContext().getRealPath(savePath); } }
相关推荐
通过以上步骤,你可以成功地使用Apache Commons FileUpload实现文件上传和下载功能,并避免中文乱码问题。在实际开发中,还可以结合Spring MVC或Struts等框架,进一步简化代码和提高代码的可维护性。
### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...
本篇将详细讲解如何使用Commons FileUpload来实现文件上传的功能。 首先,理解HTTP协议中的多部分数据是至关重要的。在HTML表单提交文件时,通常会使用`enctype="multipart/form-data"`属性,此时,数据会被分割成...
"commons-fileupload实现jsp上传实例(源码)" 这个标题表明了我们讨论的主题是关于使用Apache Commons FileUpload库在JavaServer Pages (JSP)中实现文件上传的功能,并且提供了源代码作为参考。Apache Commons ...
### Apache Commons fileUpload 实现文件上传详解 #### 引言 Apache Commons fileUpload 是一个用于处理 HTTP 文件上传的 Java 库。它简化了文件上传的过程,使得开发人员能够轻松地处理来自客户端的文件数据。本...
我自己编写的jsp页面利用fileupload组建实现文件上传和下载,简单易懂。仅供初学者参考...
Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...
本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP...
**借助Commons FileUpload组件实现文件上传** Apache Commons FileUpload组件简化了文件上传的处理过程。首先,你需要在项目中引入两个JAR包:`commons-fileupload.jar`和`commons-io.jar`。然后,在Servlet中,你...
在"commons-fileupload 1.2.1"和"1.2.2"这两个版本中,主要包含以下核心知识点: 1. **多部分解析**:HTTP文件上传是通过多部分/形式数据(Multipart/form-data)格式进行的。FileUpload库能够解析这种格式的数据,...
【标题】:基于Apache Commons FileUpload的JSP文件上传实现 Apache Commons FileUpload是一个非常流行的Java库,专门用于处理HTTP请求中的多部分数据,也就是通常所说的文件上传功能。在JSP(JavaServer Pages)中...
在本文中,我们将深入探讨如何使用JavaScript(JS)结合Apache Commons FileUpload库来实现一个带进度条的文件上传功能,并支持批量上传。这个功能在现代Web应用中非常常见,能够提供用户友好的交互体验。 首先,...
本教程将详细介绍如何利用Commons FileUpload库在J2EE环境中实现文件上传功能。 首先,理解文件上传的基本原理。在HTTP协议中,文件上传通常通过表单的`<input type="file">`元素来实现,然后将数据封装在`...
本文将深入探讨如何使用jQuery、SWFUpload和Apache Commons FileUpload这三个技术来实现这一目标。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。在本项目中,...
本文将深入探讨断点续传的原理、实现方式以及相关的编程技巧。 1. 断点续传的基本原理 断点续传的核心在于保存和恢复上传进度。在上传过程中,服务器和客户端会记录当前的传输状态,如已上传的字节数、文件的总大小...
本文将深入探讨如何使用`commons-fileupload-1.2.jar`这个组件来实现文件上传的实例。 Apache Commons FileUpload是Apache软件基金会开发的一个开源项目,它的主要目标是提供一个简单且可扩展的API,用于处理HTTP...
本教程将探讨如何在Java Web环境下实现多文件上传与下载的机制。 首先,我们来了解一下多文件上传。在HTML5之后,浏览器支持了多文件选择功能,这使得在表单中可以一次性选择多个文件进行上传。在Java Web应用中,...