`

struts2文件下载和删除

 
阅读更多

一、struts2文件下载核心点

     1、struts.xml中 action的配置

          讲解: 

<action name=" " class=" ">
       <!-- 指定文件下载目录-->
        <param name="inputPath">/upload/</param>
        <result name="success" type="stream">
            <param name="contentType">image/gif</param>
            <!--
              <param name="contentType">image/gif</param>
              <param name="contentType">application/zip</param>
              <param name="contentType">text/plain</param>
              <param name="contentType">text/html</param>
            -->
   
           <!--  
		           为action创建了属性targetFile,其类型为InputStream,
                   其值是由action中public InputStream getTargetFileStream()
                   方法注入得到的
            -->
            <param name="inputName">targetFileStream</param>

            <!--直接打开预览-->
            <param name="contentDisposition">filename="download.gif"</param>
            <!--打开下载框 <param name="contentDisposition">attachment;filename=${fileName}</param> -->
            <param name="bufferSize">4096</param>
        </result>
</action>
 

     2、获取输入流

//action中的业务逻辑

//获得输入流方法
public InputStream getTargetFileStream()
	{
		InputStream is = null; 
		String path = ServletActionContext.getServletContext().getRealPath("/upload/liucheng");
		is=UpDownLoadFile.getFileInputStream(path, fileName);
		
		return is;
	}

 

二、示例

     1、struts.xml文件配置

<package name="ssj" namespace="/ssj" extends="struts-default">
        <!-- 文件下载 -->
		<action name="downLoadFile" class="com.xinfeijinxin.qy.action.ProcessManageAction" method="downLoadFile">
		   <result type="stream" >
		    <param name="contentType">text/plain</param>
		    <param name="contentDisposition">attachment;filename=${fileName}</param>
		     <param name="inputName">targetFileStream</param>                
		     <param name="bufferSize">4096</param> 
		   </result>
		</action>

               <!-- 文件删除 -->
		<action name="deleteFile" class="com.xinfeijinxin.qy.action.ProcessManageAction" method="deleteFile">
		   <result name="lcLoad" type="chain">ProcessManage_lcLoad</result>
		</action>
 </package>

   2、DownLoadFileAction.java

//DownLoadFileAction.java代码

/*import ...
*/
public class ProcessManageAction extends BaseAction 
{
   private String fileName;

  //输入流属性注入入口
   public InputStream getTargetFileStream()
	{
		InputStream is = null; 
		String path = ServletActionContext.getServletContext().getRealPath("/upload/liucheng");
		is=UpDownLoadFile.getFileInputStream(path, fileName);
		
		return is;
	}
	
       //文件下载请求方法
	public String downLoadFile()
	{ return SUCCESS;}


       //附件删除
	public String deleteFile()
	{
		String path = ServletActionContext.getServletContext().getRealPath("/upload/liucheng");
		try {				
				UpDownLoadFile.deleteFile(fileName, path);
			} 		
		catch (IOException e) {e.printStackTrace();}
		return  "lcLoad";
	}

 /*getter and setter method
	*/
}

 

   3、UpDownLoadFile.java 文件操作工具类

/*import ....
*/
public class ProcessManageAction extends BaseAction 
{
	// 下载文件  
    public static InputStream getFileInputStream(String path,String fileName) {  
        InputStream is = null;  
        try {  
		    //通过url创建文件输入流
            is = new FileInputStream(path+"/"+ fileName);  
            System.out.println("is"+is);
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        }  
        return is;  
    }  


      //删除文件
	public static void deleteFile(String fileName,String realPath) throws IOException
	{
		System.out.println("realpath: "+realPath);
	    File file=new File(realPath+"/"+fileName);
	    FileUtils.deleteQuietly(file);
	}
}
 

   3、downFile.jsp

 <a href="ssj/downLoadFile.action?fileName=${fileName }"><span class="STYLE1">下载</span></a>
<a href="ssj/deleteFile.action?fileName=${fileName }"><span class="STYLE1">删除</span></a>
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    struts2的上传,下载,删除文件

    在本篇中,我们将聚焦于Struts2中的文件上传、下载和删除功能,这些是Web应用中常见的需求。 1. 文件上传: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它处理了多部分表单数据。首先,你需要在`...

    struts2查询修改删除

    "struts2查询修改删除"是指在Struts2框架下实现数据的CRUD操作,即创建、读取、更新和删除功能,以及查找(Find)操作。以下是对这些知识点的详细解释: 1. **创建(Create)**:在Struts2中,创建新记录通常涉及一个...

    Struts2 文件上传,下载,删除(四十一)

    在本教程中,我们将深入探讨Struts2中关于文件上传、下载和删除的核心概念和技术。这些功能在现代Web应用程序中至关重要,因为用户经常需要上传文件(如图片、文档等),或者从服务器下载资源。 **1. 文件上传** ...

    Struts2批量删除

    Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发中。批量删除功能是Web应用程序中常见的需求,特别是在管理大量数据时,...通过查看这些文件,可以更深入地理解Struts2批量删除的实现细节。

    struts2文件上传jar

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

    struts2 +jquey uploadify3.2 实现多文件上传,可预览、删除、排序

    在"struts2 +jquey uploadify3.2 实现多文件上传,可预览、删除、排序"这个项目中,开发者使用了Uploadify 3.2版本,这是一个支持异步上传和批量上传的插件,能够很好地与Struts2框架整合。以下是实现这一功能的关键...

    【jar包】Struts 2文件上传、下载、显示

    在Struts 2中,处理文件上传和下载是常见的需求,尤其是在用户交互丰富的Web应用中。为了实现这些功能,开发者需要依赖特定的库,如Apache Commons IO和Apache Commons FileUpload。这两个jar包是Struts 2文件操作的...

    struts2文件上传

    在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将详细讨论这个主题。 首先,我们来看配置拦截器的部分。在Struts2中,`struts.xml`是配置文件,...

    struts2 annotation 批量下载

    本文将深入探讨如何利用Struts2的注解功能实现批量下载功能,并通过创建临时文件来处理下载请求,同时确保在下载完成后自动删除这些临时文件,从而有效管理服务器资源。 ### Struts2 Annotation基础 Struts2框架...

    struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2

    在Struts2中,处理文件上传和下载是常见的需求。为了实现这一功能,开发人员通常需要依赖两个关键的第三方库:Apache Commons FileUpload和Apache Commons IO。 Apache Commons FileUpload是一个专门用于处理HTTP...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    同时,需要注意的是,这两个漏洞的修补需要对 Struts2 的配置文件进行修改,因此需要对 Struts2 的配置文件有充分的了解和掌握。 Struts2 的 S2-016 和 S2-017 漏洞的修补需要对 Struts2 的源代码和配置文件进行...

    struts2 的批量删除功能完整例子

    最后,`struts.xml`是Struts2的配置文件,定义了Action和结果映射。在这个例子中,我们需要配置一个Action,比如名为`BatchDeleteAction`,并映射到一个处理批量删除请求的URL。例如: ```xml ...

    kindeditor整合struts2 并且增加删除图片功能

    在Struts2的配置文件(通常为struts.xml)中,定义一个Action类,处理图片上传和删除的操作。例如: ```xml &lt;param name="contentType"&gt;image/jpeg &lt;param name="inputName"&gt;fileInputStream ...

    struts2和Hibernate中文帮助文档

    这个文件包含了Struts2框架的详细帮助文档,它是开发者在使用Struts2进行Web应用开发时的重要参考资料。Struts2的主要特点包括: 1. **Action与Result**:Struts2的核心是Action类,它是业务逻辑处理的入口。Action...

    Struts2项目struts2 上传 下载 项目

    在这个“Struts2 上传下载项目”中,我们将深入探讨如何利用Struts2实现文件上传与下载功能,并结合MySQL数据库、DAO(数据访问对象)层以及MVC架构来构建一个完整的应用。 1. **Struts2框架基础** Struts2的核心...

    Struts2漏洞利用工具

    Struts2是一个基于MVC设计模式的Web应用框架,但2存在远程代码执行的漏洞,现在Struts2漏洞检测工具2017版增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过...

    struts2从2.3.26升级2.3.34的文档

    - 删除项目中所有旧版本的Struts2 JAR文件,如struts2-core-2.3.26.jar等。 - 将压缩包中的新版本JAR文件复制到项目的类路径,如WEB-INF/lib目录下。 4. **更新配置**: - 检查并更新`struts.xml`配置文件。新...

    用struts2加hibernate对学员信息进行增删改查操作

    Struts2和Hibernate是两种非常重要的Java Web开发框架,它们分别负责表现层和持久层的管理。在本项目中,"用Struts2加Hibernate对学员信息进行增删改查操作",主要涉及了以下几个核心知识点: 1. **Struts2框架**:...

    基于struts2的简单购书管理系统

    11. **国际化(i18n)**:Struts2支持多语言,通过资源文件(如messages.properties)可以实现应用的国际化。在购书系统中,可能有不同语言的提示信息。 这个简单的购书管理系统涵盖了Struts2框架的基础应用,包括...

Global site tag (gtag.js) - Google Analytics