一、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的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
在本篇中,我们将聚焦于Struts2中的文件上传、下载和删除功能,这些是Web应用中常见的需求。 1. 文件上传: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它处理了多部分表单数据。首先,你需要在`...
"struts2查询修改删除"是指在Struts2框架下实现数据的CRUD操作,即创建、读取、更新和删除功能,以及查找(Find)操作。以下是对这些知识点的详细解释: 1. **创建(Create)**:在Struts2中,创建新记录通常涉及一个...
在本教程中,我们将深入探讨Struts2中关于文件上传、下载和删除的核心概念和技术。这些功能在现代Web应用程序中至关重要,因为用户经常需要上传文件(如图片、文档等),或者从服务器下载资源。 **1. 文件上传** ...
Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发中。批量删除功能是Web应用程序中常见的需求,特别是在管理大量数据时,...通过查看这些文件,可以更深入地理解Struts2批量删除的实现细节。
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在"struts2 +jquey uploadify3.2 实现多文件上传,可预览、删除、排序"这个项目中,开发者使用了Uploadify 3.2版本,这是一个支持异步上传和批量上传的插件,能够很好地与Struts2框架整合。以下是实现这一功能的关键...
在Struts 2中,处理文件上传和下载是常见的需求,尤其是在用户交互丰富的Web应用中。为了实现这些功能,开发者需要依赖特定的库,如Apache Commons IO和Apache Commons FileUpload。这两个jar包是Struts 2文件操作的...
在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将详细讨论这个主题。 首先,我们来看配置拦截器的部分。在Struts2中,`struts.xml`是配置文件,...
本文将深入探讨如何利用Struts2的注解功能实现批量下载功能,并通过创建临时文件来处理下载请求,同时确保在下载完成后自动删除这些临时文件,从而有效管理服务器资源。 ### Struts2 Annotation基础 Struts2框架...
在Struts2中,处理文件上传和下载是常见的需求。为了实现这一功能,开发人员通常需要依赖两个关键的第三方库:Apache Commons FileUpload和Apache Commons IO。 Apache Commons FileUpload是一个专门用于处理HTTP...
同时,需要注意的是,这两个漏洞的修补需要对 Struts2 的配置文件进行修改,因此需要对 Struts2 的配置文件有充分的了解和掌握。 Struts2 的 S2-016 和 S2-017 漏洞的修补需要对 Struts2 的源代码和配置文件进行...
最后,`struts.xml`是Struts2的配置文件,定义了Action和结果映射。在这个例子中,我们需要配置一个Action,比如名为`BatchDeleteAction`,并映射到一个处理批量删除请求的URL。例如: ```xml ...
在Struts2的配置文件(通常为struts.xml)中,定义一个Action类,处理图片上传和删除的操作。例如: ```xml <param name="contentType">image/jpeg <param name="inputName">fileInputStream ...
这个文件包含了Struts2框架的详细帮助文档,它是开发者在使用Struts2进行Web应用开发时的重要参考资料。Struts2的主要特点包括: 1. **Action与Result**:Struts2的核心是Action类,它是业务逻辑处理的入口。Action...
在这个“Struts2 上传下载项目”中,我们将深入探讨如何利用Struts2实现文件上传与下载功能,并结合MySQL数据库、DAO(数据访问对象)层以及MVC架构来构建一个完整的应用。 1. **Struts2框架基础** Struts2的核心...
Struts2是一个基于MVC设计模式的Web应用框架,但2存在远程代码执行的漏洞,现在Struts2漏洞检测工具2017版增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过...
- 删除项目中所有旧版本的Struts2 JAR文件,如struts2-core-2.3.26.jar等。 - 将压缩包中的新版本JAR文件复制到项目的类路径,如WEB-INF/lib目录下。 4. **更新配置**: - 检查并更新`struts.xml`配置文件。新...
Struts2和Hibernate是两种非常重要的Java Web开发框架,它们分别负责表现层和持久层的管理。在本项目中,"用Struts2加Hibernate对学员信息进行增删改查操作",主要涉及了以下几个核心知识点: 1. **Struts2框架**:...
11. **国际化(i18n)**:Struts2支持多语言,通过资源文件(如messages.properties)可以实现应用的国际化。在购书系统中,可能有不同语言的提示信息。 这个简单的购书管理系统涵盖了Struts2框架的基础应用,包括...