1.jsp页面设计uploadfileup.jsp
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> <script type="text/javascript"> function addMore() { var td = document.getElementById("more"); var br = document.createElement("br"); var input = document.createElement("input"); var button = document.createElement("input"); input.type = "file"; input.name = "file"; button.type = "button"; button.value = "Remove"; button.onclick = function() { td.removeChild(br); td.removeChild(input); td.removeChild(button); } td.appendChild(br); td.appendChild(input); td.appendChild(button); } </script> </head> <body> <table align="center" width="50%"> <tr> <td> <s:fielderror cssStyle="color:red" /> </td> </tr> </table> <s:form action="upload" theme="simple" enctype="multipart/form-data"> <table align="center" width="50%" border="1"> <tr> <td> username </td> <td> <s:textfield name="username"></s:textfield> </td> </tr> <tr> <td> password </td> <td> <s:password name="password"></s:password> </td> </tr> <tr> <td> file </td> <td id="more"> <s:file name="file"></s:file><input type="button" value="Add More.." onclick="addMore()"> </td> </tr> <tr> <td> <s:submit value=" submit "></s:submit> </td> <td> <s:reset value=" reset "></s:reset> </td> </tr> </table> </s:form> </body> </html>
2.实现文件上传的Action类
package com.cjg.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { private String username; private String password; private List<File> file; private List<String> fileFileName; private List<String> fileContentType; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public List<File> getFile() { return file; } public void setFile(List<File> file) { this.file = file; } public List<String> getFileFileName() { return fileFileName; } public void setFileFileName(List<String> fileFileName) { this.fileFileName = fileFileName; } public List<String> getFileContentType() { return fileContentType; } public void setFileContentType(List<String> fileContentType) { this.fileContentType = fileContentType; } @Override public String execute() throws Exception { for (int i = 0; i < file.size(); ++i) { InputStream is = new FileInputStream(file.get(i)); String root = ServletActionContext.getRequest().getRealPath( "/upload"); File destFile = new File(root, this.getFileFileName().get(i)); OutputStream os = new FileOutputStream(destFile); byte[] buffer = new byte[400]; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } is.close(); os.close(); } return SUCCESS; } }
3.Struts.xml的配置
<constant name="struts.multipart.saveDir" value="c:\"></constant> <package name="struts2" extends="jfreechart-default"> <action name="upload" class="com.cjg.action.UploadAction"> <result name="success">/uploadResult.jsp</result> <result name="input">/uploadfileup.jsp</result> <interceptor-ref name="fileUpload"> <param name="maximumSize">409600</param> <param name="allowedTypes"> application/vnd.ms-powerpoint </param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package>
相关推荐
在Struts2中,实现多文件上传功能是常见的需求,尤其在处理用户需要上传多个文件的场景下,如上传图片、文档等。本篇文章将详细介绍如何使用Struts2来实现这一功能。 首先,我们需要理解Struts2的上传机制。在...
文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
在实现文件上传时,必须注意以下安全问题: 1. **文件类型检查**:限制上传的文件类型,防止恶意用户上传可执行文件或脚本。 2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **...
本项目“extjs3.2+struts2实现多文件上传excel并插入到数据库”是针对这一需求的具体解决方案,利用了ExtJS 3.2前端框架和Struts2后端框架进行开发。 **ExtJS 3.2** 是一个基于JavaScript的富客户端应用框架,提供...
ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)(项目源码) 博文地址:http://blog.csdn.net/itmyhome1990/article/details/36433621
在Struts2中实现文件上传和下载功能是常见的需求,这对于处理用户提交的各种文件,如图片、文档等,至关重要。下面将详细阐述如何在Struts2框架下实现多文件上传和下载。 首先,为了实现文件上传,我们需要在Struts...
在本文中,我们将深入探讨如何使用`ajaxFileUpload`与`Struts2`框架结合,实现多文件上传功能。这个示例源码提供了一个实用的方法,使得用户可以在不刷新整个页面的情况下,上传多个文件,提高了用户体验。 首先,`...
首先,要实现Struts2的文件上传,必须引入必要的依赖库。主要需要两个Apache Commons库:`commons-fileupload-1.2.2.jar`和`commons-io-2.0.1.jar`。这两个库提供了文件上传的基础功能,使得Struts2能够处理`...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...
在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...
在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...
要实现文件上传,你需要完成以下步骤: 1. **配置Struts2上传插件**: 在`struts.xml`配置文件中,添加上传插件的配置,确保它启用并指定了临时文件存储路径: ```xml <constant name="struts.multipart....
在处理文件上传时,Struts2提供了便捷的API和配置方式,使得开发人员能够轻松实现多文件上传的功能。下面将详细阐述如何使用Struts2来实现多个文件的上传。 首先,理解文件上传的基本原理。在HTTP协议中,文件上传...
在Struts2中,文件上传主要依赖于`org.apache.struts2.components.FileUpload`组件,这个组件是基于Commons FileUpload库实现的,它能够处理multipart/form-data类型的HTTP请求,这是文件上传所必需的格式。...