`

Struts2实现文件上传多个实例...

阅读更多

1.UploadAction.java

 

 

package lee;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
   private String title;
   private File[] upload;
   private String[] uploadContentType;
   private String[] uploadFileName;
   //接爱依赖注入的属性
   private String savePath;
 
public String getSavePath() {
 return ServletActionContext.getRequest().getRealPath(savePath);
}
//接受依赖注入的方法
public void setSavePath(String savePath) {
 this.savePath = savePath;
}
public String getTitle() {
 return title;
}
public void setTitle(String title) {
 this.title = title;
}


public File[] getUpload() {
 return upload;
}
public void setUpload(File[] upload) {
 this.upload = upload;
}
public String[] getUploadContentType() {
 return uploadContentType;
}
public void setUploadContentType(String[] uploadContentType) {
 this.uploadContentType = uploadContentType;
}
public String[] getUploadFileName() {
 return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
 this.uploadFileName = uploadFileName;
}


public String execute()throws Exception{
 File[] files=this.getUpload();
 for(int i=0;i<files.length;i++){
 //以服务器的文件保存地址和原文件名建立上传文件输出流
 FileOutputStream fos=new FileOutputStream(this.getSavePath()+"\\"+this.getUploadFileName()[i]);
 FileInputStream fis=new FileInputStream(this.getUploadContentType()[i]);
 byte[] buffer=new byte[1024];
 int len=0;
 while((len=fis.read(buffer))>0){
  fos.write(buffer,0,len);
 }
 }
 return SUCCESS;
   }
 
}

 

 

2.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="globalMessages"/>
 <constant name="struts.i18n.encoding" value="GBK"/>

 <package name="upload" extends="struts-default">
    
  <action name="upload" class="lee.UploadAction">
  <interceptor-ref name="fileUpload">
  <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg</param>
  </interceptor-ref>
  <interceptor-ref name="defaultStack"></interceptor-ref>
     <param name="savePath">/upload</param>
     <result name="input">/upload.jsp</result>
     <result>/succ.jsp</result>
  </action>  
 </package>
</struts> 

 

3.upload.jsp

 

<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>利用拦截器实现文件过滤</title>
</head>
<body>
${requestScope.typeError}
<form action="upload.action" method="post" enctype="multipart/form-data">
   文件标题:<input type="text" name="title" /><br>
   选择第一个文件:<input type="file" name="upload" /><br>
   选择第二个文件:<input type="file" name="upload" /><br>
   选择第三个文件:<input type="file" name="upload" /><br>
 <input value="上传" type="submit" />
</form>
</body>
</html>

分享到:
评论

相关推荐

    Struts2多文件上传下载实例

    在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...

    struts2文件上传中的struts.multipart.saveDir提示信息

    在实现文件上传时,Struts2需要一个临时目录来保存上传的文件内容,直到它们被完全接收并处理。这个临时目录是通过配置参数`struts.multipart.saveDir`来指定的。如果未设置此参数,当尝试上传文件时,Struts2框架将...

    一个Struts1多文件上传实例(附Form中传List示例)

    总之,这个实例提供了关于Struts1中文件上传和复杂表单数据处理的实战经验,对于学习Java Web开发和Struts1框架的开发者来说,这是一个非常有价值的参考。通过实际操作和调试,可以加深对Struts1处理文件上传和复杂...

    java struts2入门学习实例--使用struts2快速实现多个文件上传.doc

    ### Java Struts2入门学习实例——使用Struts2快速实现多个文件上传 #### 知识点一:配置Struts2中的错误提示信息 在开发基于Java的Web应用程序时,经常需要处理用户上传文件的需求。而Struts2框架因其灵活性与...

    文件上传struts2实现实例

    对于多文件上传,可以使用`&lt;s:file&gt;`标签的多个实例,然后在Action类中对应地处理每个文件。 在实际应用中,还需要考虑一些额外的问题,如文件大小限制、文件类型检查、错误处理等。Struts2提供了一些内置的拦截器...

    struts实现任意多文件上传实例

    总的来说,"struts实现任意多文件上传实例"是一个实用的示例,可以帮助开发者了解和掌握在Struts中进行多文件上传的完整流程。通过学习这个实例,你可以更深入地理解Struts框架和文件上传的处理方式。

    struts2文件上传下载实例

    在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...

    struts2文件上传文件的小实例

    在这个“struts2文件上传文件的小实例”中,我们将探讨如何使用Struts2实现文件上传功能,这是一个在Web应用中常见的需求,比如用户上传照片、文档等。 在Java Web开发中,文件上传通常涉及到以下几个关键组件: 1...

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传)

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的...

    用Struts框架实现多文件上传功能(初学者的入门项目案例)

    在本项目中,我们将学习如何利用Struts框架实现多文件上传的功能,这对于初学者来说是一个很好的实践项目,能够帮助理解和掌握Struts的核心概念。 首先,了解文件上传的基本原理。在Web应用中,文件上传通常涉及到...

    struts2上传文件实例

    本实例将详细讲解如何在Struts2中实现文件上传。 首先,理解文件上传的基本概念。在Web应用中,文件上传涉及到客户端(浏览器)和服务器端的交互。用户选择本地文件后,这些文件的数据会被转换成二进制流,封装在...

    基于Struts2的文件上传下载功能的完整源代码。

    这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action类是业务逻辑的载体,它处理来自用户请求的输入并返回结果到视图。在文件上传下载场景...

    uploadify3与struts2结合实现有进度条文件上传实例

    这是根据uploadify3 2结合struts2搭建的文件上传环境 可以直接导入eclipse运行 每步实现基本都加了注释 以下是我碰到的问题: 1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里...

    Struts2属性文件详解

    该属性设定了Struts 2文件上传中整个请求内容的最大字节数限制,以防止过大的文件上传导致的问题。 #### struts.custom.properties 指定了Struts 2应用加载的用户自定义属性文件,自定义属性文件中的设置不会覆盖`...

    uploadify+struts2多文件上传实例

    `uploadify`与`Struts2`结合的多文件上传实例就是一个典型的解决方案,尤其针对跨浏览器兼容性问题,如在Firefox下的session问题。下面我们将深入探讨这两个技术以及它们如何协同工作。 `Uploadify`是一个基于...

    Struts2文件上传下载和表单重复提交问题

    综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。

    struts2 文件上传实例

    在这个实例中,我们将深入探讨如何利用Struts2实现文件上传,并关注其配置细节。 首先,文件上传的核心类是`org.apache.struts2.servlet.multipart.FileUpload`,它是Struts2框架内置的多功能工具,可以处理HTTP...

    struts2_uploadify带进度条的多文件上传下载

    总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...

    struts2上传下载实例

    这个"struts2_上传下载"实例可能还包括了错误处理、多文件上传、限制上传大小、文件类型检查等更复杂的情况。通过这些示例,开发者可以学习如何在实际项目中安全、高效地实现文件上传和下载功能。

    Struts2 实现文件简单上传

    在实现文件上传时,Action类需要包含一个或多个用于接收上传文件的字段,这些字段通常是`java.io.File`类型的实例或`org.apache.struts2.dispatcher.multipart.FileItem`类型的。 例如,创建一个名为`...

Global site tag (gtag.js) - Google Analytics