`
peak007
  • 浏览: 6207 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2.0多文件上传(我自己用,好用,中文也可以上传)

    博客分类:
  • java
阅读更多
这个页面是点一个添加就出一个浏览上传的

<%@ 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//大小
分享到:
评论

相关推荐

    struts2.0中文教程

    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文件上传原理

    Struts2.0文件上传原理主要涉及Web应用中处理用户上传文件的功能,这一过程涉及到多个步骤和技术,包括HTTP协议、Multipart/form-data编码、临时文件存储以及后台处理。以下是对Struts2.0文件上传原理的详细解释: ...

    struts2.0的文件上传及下载

    Struts2.0是一个强大的Java Web框架,它提供了一种结构化的方式来开发MVC(Model-View-Controller)应用程序。在Struts2中,文件上传和...通过理解并实践这些步骤,你可以在Struts2.0中有效地实现文件上传和下载功能。

    struts2.0上传文件

    通过以上步骤,你可以使用Struts2.0实现文件上传功能。在实际开发中,还可以结合其他技术,如Spring、Hibernate等,以构建更复杂的业务流程。记住,始终要关注安全性,以确保应用的稳定性和用户的数据安全。

    Struts2.0 实现文件上传进度

    在Struts2.0框架中实现文件上传进度是一项常见的需求,尤其在用户上传大文件时,实时显示上传进度可以提供更好的用户体验。本文将详细介绍如何利用Struts2.0的监听器来实现这一功能。 首先,我们需要理解文件上传的...

    struts2.0上传文件源码

    通过分析这个源码,你可以深入了解Struts2.0框架处理文件上传的流程,这对于理解和实践Java Web开发非常有帮助。同时,这也是学习其他类似框架(如Spring MVC)文件上传功能的良好起点,因为它们的基本原理都是相通...

    Struts 2.0系列(MAX)

    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文件上传实例

    Struts2.0文件上传是Java Web开发中的一个重要实践,它允许用户在Web应用程序中上传文件,例如图片、文档或音频文件。这个实例是针对初学者设计的,可以帮助理解并实现这一功能。以下是对Struts2.0文件上传机制及其...

    Struts2.0上传多文件

    总结起来,Struts2.0中的多文件上传涉及HTML表单的创建、Action类的编写、Struts2配置以及Apache Commons FileUpload库的使用。通过以上步骤,你可以实现一个功能完善的多文件上传功能,同时还可以根据实际需求添加...

    struts2.0+Extjs文件上传例子

    功能强大的Struts2.0+Extjs实现的文件上传,包含文件上传进度,文件的下载,压缩,解压多文件删除等

    Struts2.0 文件上传与下载全解析

    本篇文章将全面解析Struts2.0中的文件上传和下载流程。 ### 文件上传 文件上传的核心在于`multipart/form-data`编码类型,这是HTML表单用于上传文件的必需属性。在示例中,我们看到一个简单的Struts2表单,其中...

    struts2.0 文件上传示例

    这个案例展示了Struts2.0文件上传的基本流程,包括Action类的编写、Struts配置、文件上传逻辑以及前端表单设计。通过这种方式,开发者可以灵活地控制文件上传的过程,确保安全性并提供友好的用户体验。同时,这个...

    Struts_2.0从入门到精通

    文件上传是Web应用中的常见需求,Struts2.0提供了完善的文件上传解决方案。它利用MultipartResolver接口处理多部分请求,支持单文件和多文件上传。开发者只需简单配置,即可轻松实现文件上传功能。 十、Struts2.0中...

    使用ExtJs的插件UploadDialog+struts2.0实现多文件上传

    在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...

    struts2.0上传文件代码总结

    ### Struts2.0 文件上传实现详解 #### 一、概述 在Web开发中,文件上传是一项常见的功能需求。Struts2框架提供了简洁且强大的机制来处理文件上传问题。本文档将详细介绍如何利用Struts2.0进行文件上传操作,包括...

    Struts2.0实现文件上传例子

    通过以上步骤,我们就完成了在Struts2.0框架下实现文件上传的基本过程。这个例子中,`StrutsUpload`可能是项目或示例代码的名称,具体实现细节可能包含Action类、配置文件、表单页面等相关文件。

    Struts2.0文件上传进度

    在Struts2.0框架中,文件上传是一个常见的功能,特别是在处理大文件或者需要用户反馈上传状态的应用场景中。为了提供更好的用户体验,我们通常会希望实现一个文件上传进度条,以便用户可以直观地看到文件上传的进度...

    struts2.0源代码

    在Action中,可以使用`@Params`注解或`File`、`FileName`、`ContentType`参数来处理文件上传。对于文件下载,可以通过设置HTTP响应头信息,如Content-Disposition和Content-Type,指导浏览器如何处理响应内容。 4. ...

Global site tag (gtag.js) - Google Analytics