这个页面是点一个添加就出一个浏览上传的
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<script language="javascript">
function addComponent()
{
var uploadHTML = document.createElement( "<input type='file' name='upload'/>");
document.getElementById("files").appendChild(uploadHTML);
uploadHTML = document.createElement( "<p/>");
document.getElementById("files").appendChild(uploadHTML);
}
</script>
</head>
<body>
<s:fielderror/>
<input type="button" onclick="addComponent();" value="添加文件" /><br />
<form onsubmit="return true;" action="upload.action" method="post" enctype="multipart/form-data"><span id="files">
<input type='file' name='upload' /><p /></span>
<input type="submit" value="上传" />
</form>
</body>
</html>
写个action类
package org.qiujy.web.struts2;
import java.io.*;
import com.opensymphony.xwork2.ActionSupport;
public class UploadMoreAction extends ActionSupport {
private java.util.List uploads;
private java.util.List fileNames;
private java.util.List uploadContentTypes;
public java.util.List getUploadFileName() {
return fileNames;
}
public void setUploadFileName(java.util.List fileNames) {
this.fileNames = fileNames;
}
public java.util.List getUpload() {
return uploads;
}
public void setUpload(java.util.List uploads) {
this.uploads = uploads;
}
public void setUploadContentType(java.util.List contentTypes) {
this.uploadContentTypes = contentTypes;
}
public java.util.List getUploadContentType() {
return this.uploadContentTypes;
}
public String execute() throws Exception {
if (uploads != null) {
int i = 0;
for (; i < uploads.size(); i++) {
java.io.InputStream is = new java.io.FileInputStream((String) uploads.get(i));
java.io.OutputStream os = new java.io.FileOutputStream(
"e:\\mydir\\" + fileNames.get(i));
byte buffer[] = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count);
}
os.close();
is.close();
}
}
return SUCCESS;
}
}
struts。xml配
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
<constant name="struts.custom.i18n.resources" value="messages"/>
<package name="fileUploadDemo" extends="struts-default">
<action name="upload"
class="org.qiujy.web.struts2.UploadMoreAction">
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型,多个用","分隔 -->
<param name ="allowedTypes" >
<!-- image/bmp,image/png,image/gif,image/jpeg,image/jpg-->
</param>
<!-- 配置允许上传的文件大小,单位字节 -->
<param name="maximumSize">40000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="input">dddd.jsp</result>
<result name="success">dddd.jsp</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
写个提示错误的文件messages.properties
struts.messages.error.content.type.not.allowed=\u4E0D\u5141\u8BB8\u7684\u7C7B\u578B//类型
struts.messages.error.file.too.large=\u4F60\u8981\u4E0A\u4F20\u7684\u6587\u4EF6\u592A\u5927//大小
分享到:
相关推荐
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解...09 在Struts 2中实现文件上传 10 在Struts 2中实现CRUD 11 Struts 2中的OGNL 12 trus 2的新表单标志的使用 13 Struts 2与AJAX
Struts2.0文件上传原理主要涉及Web应用中处理用户上传文件的功能,这一过程涉及到多个步骤和技术,包括HTTP协议、Multipart/form-data编码、临时文件存储以及后台处理。以下是对Struts2.0文件上传原理的详细解释: ...
Struts2.0是一个强大的Java Web框架,它提供了一种结构化的方式来开发MVC(Model-View-Controller)应用程序。在Struts2中,文件上传和...通过理解并实践这些步骤,你可以在Struts2.0中有效地实现文件上传和下载功能。
通过以上步骤,你可以使用Struts2.0实现文件上传功能。在实际开发中,还可以结合其他技术,如Spring、Hibernate等,以构建更复杂的业务流程。记住,始终要关注安全性,以确保应用的稳定性和用户的数据安全。
在Struts2.0框架中实现文件上传进度是一项常见的需求,尤其在用户上传大文件时,实时显示上传进度可以提供更好的用户体验。本文将详细介绍如何利用Struts2.0的监听器来实现这一功能。 首先,我们需要理解文件上传的...
通过分析这个源码,你可以深入了解Struts2.0框架处理文件上传的流程,这对于理解和实践Java Web开发非常有帮助。同时,这也是学习其他类似框架(如Spring MVC)文件上传功能的良好起点,因为它们的基本原理都是相通...
Struts 2.0系列(MAX),pdf格式,全方位介绍struts2: 常用的Struts 2.0的标志(Tag)介绍 ...在Struts 2中实现文件上传 在Struts 2中实现CRUD Struts 2中的OGNL Strus 2的新表单标志的使用 Struts 2与AJAX
Struts2.0文件上传是Java Web开发中的一个重要实践,它允许用户在Web应用程序中上传文件,例如图片、文档或音频文件。这个实例是针对初学者设计的,可以帮助理解并实现这一功能。以下是对Struts2.0文件上传机制及其...
总结起来,Struts2.0中的多文件上传涉及HTML表单的创建、Action类的编写、Struts2配置以及Apache Commons FileUpload库的使用。通过以上步骤,你可以实现一个功能完善的多文件上传功能,同时还可以根据实际需求添加...
功能强大的Struts2.0+Extjs实现的文件上传,包含文件上传进度,文件的下载,压缩,解压多文件删除等
本篇文章将全面解析Struts2.0中的文件上传和下载流程。 ### 文件上传 文件上传的核心在于`multipart/form-data`编码类型,这是HTML表单用于上传文件的必需属性。在示例中,我们看到一个简单的Struts2表单,其中...
这个案例展示了Struts2.0文件上传的基本流程,包括Action类的编写、Struts配置、文件上传逻辑以及前端表单设计。通过这种方式,开发者可以灵活地控制文件上传的过程,确保安全性并提供友好的用户体验。同时,这个...
文件上传是Web应用中的常见需求,Struts2.0提供了完善的文件上传解决方案。它利用MultipartResolver接口处理多部分请求,支持单文件和多文件上传。开发者只需简单配置,即可轻松实现文件上传功能。 十、Struts2.0中...
在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...
### Struts2.0 文件上传实现详解 #### 一、概述 在Web开发中,文件上传是一项常见的功能需求。Struts2框架提供了简洁且强大的机制来处理文件上传问题。本文档将详细介绍如何利用Struts2.0进行文件上传操作,包括...
通过以上步骤,我们就完成了在Struts2.0框架下实现文件上传的基本过程。这个例子中,`StrutsUpload`可能是项目或示例代码的名称,具体实现细节可能包含Action类、配置文件、表单页面等相关文件。
在Struts2.0框架中,文件上传是一个常见的功能,特别是在处理大文件或者需要用户反馈上传状态的应用场景中。为了提供更好的用户体验,我们通常会希望实现一个文件上传进度条,以便用户可以直观地看到文件上传的进度...
在Action中,可以使用`@Params`注解或`File`、`FileName`、`ContentType`参数来处理文件上传。对于文件下载,可以通过设置HTTP响应头信息,如Content-Disposition和Content-Type,指导浏览器如何处理响应内容。 4. ...