`
fanta123
  • 浏览: 7141 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于struts2的文件上传和下载

阅读更多
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文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2文件上传和下载

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

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2 文件的上传和下载

    Struts2是一个流行的Java web框架,它为开发者提供了一种优雅的方式来构建动态、结构化的Web...希望本文能为你提供关于Struts2文件上传和下载的基本指导,进一步学习可参考给定的博文链接或其他相关文档和示例代码。

    struts2文件上传下载

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

    Struts2文件上传与下载

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...

    struts2文件上传与下载

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

    struts2中的文件上传和下载示例

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括文件上传和下载。在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个...

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

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

    Struts2多文件上传下载实例

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

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

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

    Struts2文件上传和下载教程

    ### Struts2文件上传与下载教程 #### 一、文件上传原理及实现 ...以上步骤详细介绍了如何利用Struts2框架实现文件的上传和下载功能。这些技巧不仅提高了系统的可用性和安全性,还增强了用户体验。

    struts2文件上传jar

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

    struts2上传和下载文件详细源码

    在这个"struts2上传和下载文件详细源码"中,我们可以深入理解Struts2如何处理文件上传和下载操作。 1. 文件上传: 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。首先,需要在struts.xml配置文件...

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

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

    struts2实现多文件上传下载

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

    struts2 上传和下载

    以下是关于Struts2文件上传和下载的详细知识点: 1. **文件上传组件**: Struts2提供了`File`、`Files`和`FileItem`等类来处理文件上传。`File`用于单个文件,`Files`则用于多个文件的上传。`FileItem`是Apache ...

    struts文件上传和下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户通过表单提交的文件,或者允许用户从服务器下载文件。这些功能极大地增强了Web应用的交互性和实用性。 在Struts2中实现文件上传,主要涉及到以下几...

Global site tag (gtag.js) - Google Analytics