`

struts2 文件上传于下载

阅读更多

 

 

 

<!--  配置文件设置 -->
<action name="fileupload_*" class="FileuploadAct" method="{1}">
    <!-- 若上传的文件不符合要求则返回input -->
    <result name="input">/error.jsp</result>
     <!-- 限制上传的文件的大小,在struts-default.xml中我们可能找到一个fileUpload拦截器 -->
    <interceptor-ref name="fileUpload">
     <!-- 单位为字节,这里为116528750 大约为100M这里的大小是指每个文件上传的大小,若多个文件上传指每一个文件的大小 -->
   <param name="maximumSize">116528750</param>
    <!-- 指定文件上传的类型,在X:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\web.xml中Tomcat提定所有文件类型 -->
 
  </interceptor-ref>
   <!-- 加上默认拦截器 -->
  <interceptor-ref name="defaultStack"></interceptor-ref>
</action>

 

 

 

 

 <form action="/user/user.action" method="post" id="basicForm" name="basicForm" enctype="multipart/form-data">
<input    type="file" name="files"/> 
<input    type="file" name="files"/> 
</form>
 

 

 

 

 

 Action 中处理

 

	// 文件
	private File[] files;
	// 文件名字
	private String[] filesFileName;
	// 文件类型
	private String[] filesContentType;
	 
	循环files执行以下的方法:
	 
	/**
	* 保存文件
	* 
	* @param file
	* @param saveDir
	* @param saveDir2 
	* @return
	*/
	private String saveFile(File file, String suffix, String saveDir) {
		File saveDirFile = new File(saveDir);
		if (!saveDirFile.exists()) {
		saveDirFile.mkdirs();
	}

	BufferedOutputStream bos = null;
	BufferedInputStream bis = null;
	Random rm = new Random();
	String newFileName = System.currentTimeMillis() + rm.nextInt(1000)  + suffix  ;
	try {
			bis = new BufferedInputStream(new FileInputStream(file));
			bos = new BufferedOutputStream(new FileOutputStream(new File(
			saveDir, newFileName)));
			byte[] bs = new byte[1024];
			int len;
			while ((len = bis.read(bs, 0, 1024)) > 0) {
			bos.write(bs, 0, len);
		}
			bis.close();
			bos.close();
			file.delete();
			return newFileName;
		} catch (Exception e) {
			e.printStackTrace();
		 
		} finally {
		try {
			if (bis != null) {
			bis.close();
			}
			if (bos != null) {
			bos.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
	return null;
 
}

 

 

 

 

=--------------------下载----------

1  配置文件

<!-- download -->
<action name="download_*" class="com.userAct" method="{1}">
   <result name="success" type="stream">
       <!-- 指定下载文件的内容类型,text/plain是默认类型 -->
       <param name="contentType">application/octet-stream</param>
       <!-- inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数 -->
       <param name="inputName">inputStream</param>
       <!--动态获取文件名,从Action中的取得filename-->
<param name="contentDisposition">
attachment;filename="${fileName}"
</param>
       <param name="bufferSize">4096</param>  
   </result>
</action>
 

 

2 Action中处理

private InputStream inputStream;
public String downLoadFile(){
 
//查询出文件的路径filepath
               fileName="下载文件的真实名称";
try {
	inputStream = new FileInputStream( new File(filepath ));
} catch (FileNotFoundException e) {
	e.printStackTrace();
}
 
   return "success";
}

 

 

 

 

分享到:
评论

相关推荐

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    struts2文件上传和下载

    在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...

    struts2文件上传下载

    在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...

    Struts2文件上传与下载

    文件上传在Struts2中主要依赖于`org.apache.struts2.interceptor.FileUploadInterceptor`拦截器,以及`CommonsFileUpload`库,这是一个Apache提供的用于处理HTTP多部分请求的组件。以下是实现文件上传的关键步骤: ...

    struts2文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...

    struts2文件上传jar

    这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...

    Struts2之struts2文件上传详解案例struts011

    在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...

    Struts2多文件上传下载实例

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

    struts2 文件上传

    struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload

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

    文件上传功能在Struts2中通过`Struts2`提供的插件来实现,主要依赖于`Apache Commons FileUpload`库。首先,要在`struts.xml`配置文件中启用文件上传支持,设置`struts.multipart.parser`为`jakarta`或`native2...

    struts2文件上传下载实例

    对于初学者,阅读这些文档能更好地理解Struts2的用法以及文件上传下载的具体步骤。 总的来说,Struts2文件上传下载实例涵盖了Web开发中常见的两个重要功能。通过使用Maven管理依赖,编写Action类处理业务逻辑,并在...

    struts实现的文件上传下载功能

    在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...

    struts2实现多文件上传下载

    3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...

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

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    struts实现文件上传和下载源代码

    例如,Struts 1和Struts 2在处理文件上传和下载的方式上有显著区别,Struts 2引入了更多面向Action的API和拦截器机制。 5. **源代码分析** 在提供的压缩包文件`upload`中,可能包含了Action类、Struts配置文件、...

    struts2文件上传实例

    1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`&lt;result&gt;`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

Global site tag (gtag.js) - Google Analytics