1.上传
分三步:(1)导入相应的jar包commons-fileupload-1.2.1.jar,commons-io-1.2.1.jar。
(2)设置form表的enctype="multipart/form-data"属性
(3)在action中添加以下属性:
private File image;//文件
private String imageFileName;//文件名
实例:jsp文件:
<body style="background-image: url(../css/img/background.png);" >
<form action="upload.action" namespace="/admin" enctype="multipart/form-data" method="post" theme="simple">
文件:<input type="file" name="image"/>
<input type="submit" value="上传"/>
</form>
</body>
struts.xml配置文件:
<action name="upload" class="uploadAction" >
<result name="success">/admin/message.jsp</result>
</action>
action类:
import com.opensymphony.xwork2.ActionContext;
public class UploadAction {
private File image;//和JSP的name属性一致,类型为File
private String imageFileName;//文件名,必须是name属性+FileName
private UploadService uploadService;
private UploadFile uploadFile;//自定义一个实体类保存上传文件
public String execute() throws Exception{
String realPath = ServletActionContext.getServletContext().getRealPath("/upload");
System.out.println("保存地址:"+realPath);
if(image != null){
File saveFile = new File(new File(realPath),imageFileName);
System.out.println("文件名:"+imageFileName);
if(!saveFile.getParentFile().exists()) saveFile.getParentFile().mkdirs();
FileUtils.copyFile(image, saveFile);
uploadFile = new UploadFile();
uploadFile.setfPath(realPath);
uploadFile.setfName(imageFileName);
uploadService.saveFile(uploadFile);//保存至数据库
ActionContext.getContext().put("message", "上传成功!");
}
return "success";
}
//getter/setter....
}
至此基本完成上传功能
2.下载
将文件名从数据库取出来并迭代在JSP页面:
<s:iterator value="list" var="l">
<tr>
<td>${l.fName}</td>
<td><a href="../employee/down.action?fileName=${l.fName}" >下载</a></td>
</tr>
</s:iterator>
strut2.xml文件配置:
<!--下载文件 -->
<action name="down" class="downFileAction" >
<result name="success" type="stream">
<!-- 指定下载文件的内容类型,text/plain是默认类型 -->
<param name="contentType">${contentType}</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>
action类:
public class DownFileAction extends BaseAction{
private String fName;
private String contentType;
private String inputPath;
private String fileName;
public InputStream getInputStream() throws UnsupportedEncodingException{
byte[] cc = fileName.getBytes("iso-8859-1");
fName = new String(cc,"utf-8");
System.out.println("请求地址:"+"/upload/"+fName);
return ServletActionContext.getServletContext().getResourceAsStream("/upload/"+fName);
}
public String execute(){
System.out.println("fileName:"+fileName);
return "success";
}
//getters和setters
}
至此,下载功能基本完成
分享到:
相关推荐
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
Struts2是一个流行的Java web框架,它为开发者提供了一种优雅的方式来构建动态、结构化的Web...希望本文能为你提供关于Struts2文件上传和下载的基本指导,进一步学习可参考给定的博文链接或其他相关文档和示例代码。
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括文件上传和下载。在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个...
例如,Struts 1和Struts 2在处理文件上传和下载的方式上有显著区别,Struts 2引入了更多面向Action的API和拦截器机制。 5. **源代码分析** 在提供的压缩包文件`upload`中,可能包含了Action类、Struts配置文件、...
在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...
综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。
### Struts2文件上传与下载教程 #### 一、文件上传原理及实现 ...以上步骤详细介绍了如何利用Struts2框架实现文件的上传和下载功能。这些技巧不仅提高了系统的可用性和安全性,还增强了用户体验。
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在这个"struts2上传和下载文件详细源码"中,我们可以深入理解Struts2如何处理文件上传和下载操作。 1. 文件上传: 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。首先,需要在struts.xml配置文件...
在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...
3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...
以下是关于Struts2文件上传和下载的详细知识点: 1. **文件上传组件**: Struts2提供了`File`、`Files`和`FileItem`等类来处理文件上传。`File`用于单个文件,`Files`则用于多个文件的上传。`FileItem`是Apache ...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户通过表单提交的文件,或者允许用户从服务器下载文件。这些功能极大地增强了Web应用的交互性和实用性。 在Struts2中实现文件上传,主要涉及到以下几...