struts2实现文件的下载

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1.编写下载文件的action。(做测试前现在WebRoot路径下建一个upload文件夹,里面放你要下载文件)该类为FileDownload.action</span>
<pre name="code" class="java">package com.zhaoyun.business.action;

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.zhaoyun.core.web.struts2.BaseAction;

public class FileDownload extends BaseAction {
	private static final long serialVersionUID = 1L;
		//文件下载

		private String fileName;

		public String getFileName() {
			return fileName;
		}

		public void setFileName(String fileName) {
			this.fileName = fileName;
		}

		//返回一个输入流,作为一个客户端来说是一个输入流,但对于服务器端是一个 输出流
		public InputStream getDownloadFile() throws Exception
		{
			return ServletActionContext.getServletContext().getResourceAsStream("upload/"+fileName);
		}

		@Override
		public String execute() throws Exception {
			System.out.println("execute");
			return SUCCESS;
		}

}

2.配置访问的路径。在struts.xml中配置
<action name="FileDownload" class="com.zhaoyun.business.action.FileDownload">  
           <result name="success" type="stream">  
               <param name="contentType">text/plain</param>  
               <param name="contentDisposition">attachment;fileName="${fileName}"</param>  
               <param name="inputName">downloadFile</param>  
               <param name="bufferSize">1024</param>  
           </result>  
</action>  
3.jsp页面写下载的文件及链接
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'filedownload.jsp' starting page</title>
    
<span style="white-space:pre">	</span><meta http-equiv="pragma" content="no-cache">
<span style="white-space:pre">	</span><meta http-equiv="cache-control" content="no-cache">
<span style="white-space:pre">	</span><meta http-equiv="expires" content="0">    
<span style="white-space:pre">	</span><meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<span style="white-space:pre">	</span><meta http-equiv="description" content="This is my page">
<span style="white-space:pre">	</span><!--
<span style="white-space:pre">	</span><link rel="stylesheet" type="text/css" href="styles.css">
<span style="white-space:pre">	</span>-->

  </head>
  
  <body>
  
    <h2>文件下载内容:</h2><br/>
    welcome.gif:<a href="FileDownload.action?fileName=welcome.gif">点击下载</a><br/>
    计算机论文1.docx:<a href="FileDownload.action?fileName=计算机论文1.docx">点击下载2</a>
    Dubbo实战.pdf:<a href="FileDownload.action?fileName=Dubbo实战.pdf">点击下载2</a>
    
  </body>
</html>
这样一个简单的文件下载demo就完成了。
时间: 2024-10-10 09:27:18

struts2实现文件的下载的相关文章

struts2实现文件批量下载

大家都知道struts2提供了文件下载的功能,很方便很好用.废话不多说直接开始. 首先我们先对struts.xml进行配置,struts2的result 类型设为stream,请看如下配置: <span style="font-size:18px;"> <result name="toDownload" type="stream"> <param name="bufferSize">2048

struts2进行文件的下载

首先搭建好struts2的开发环境,先新建一个下载的页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My

用struts2实现文件的上传下载

在做B/S系统时经常会有文件上传下载的需求,现就基于struts2框架实现其功能 Struts2框架默认采用Commons-fileupload组件完成文件上传功能.? 使用Struts2框架实现文件上传功能,只需在Action中定义一个java.io.File类型的成员并为之设立setter方法,方法名要和参数名对应.? 客户端上传的文件, Struts2框架会自动将其保存在临时文件中,封装成java.io.File类对象.如果还想得到上传的文件名和文件类型,需按照如下命名规则在Action中

7、Struts2实现文件上传和下载

一.实现单个文件上传 1.创建如下web项目结构 2.在src下的com.action包下创建UploadAction.java 1 package com.action; 2 import java.io.File; 3 4 import javax.servlet.ServletContext; 5 6 import org.apache.commons.io.FileUtils; 7 import org.apache.struts2.ServletActionContext; 8 9 i

Struts2控制文件的上传与下载

Struts2控制文件上传与下载的几个注意事项: (1)必须将表单的method设置为post,将enctype设置为multipart/from-data.只有这样,浏览器才会把用户选择文件的二进制数据发送给数据. (2)Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,因此,如果需要使用Struts2的文件上传功能,则需要在web应用中增加两个JAR文件,即commons-io-2.2.jar和commons-fileupload-1.3.1.jar

Struts2入门(七)——Struts2的文件上传和下载

一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST"方式,并且将enctype属性设置为"multipart/form-data",该属性的默认值为"application/x-www-form-urlencoded",就是说,表单要写成以下这种形式: <form action="" metho

Struts2之文件上传下载

本篇文章主要介绍如何利用struts2进行文件的上传及下载,同时给出我在编写同时所遇到的一些问题的解决方案. 文件上传 前端页面 1 <!-- 引入struts标签 --> 2 <%@taglib prefix="s" uri="/struts-tags"%> 3 4 <!-- 5 使用struts中的<s:file></s:file>标签来选择文件. 6 设置name属性,则提交后将传递后给后台一个name属性

Struts2实现文件的上传与动态下载功能。

本篇主要使用Struts2实现文件的上传与动态下载功能.出于安全考虑,所以,在硬盘上存储上传的文件的时候,统一都重新命名为随机字符串.用数据库存储真实文件名与随机文件名称之间的关联. 下面的是实体类 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class FileBag implements java.io.Serializable {     // Fields     private Integer id;   //Id编号     privat

struts2实现文件查看、下载

CreateTime--2017年9月7日10:25:33 Author:Marydon 1.界面展示 <a style="color: #199ED8;" target="_blank" href="<c:url value="/telemedicine/reseCons/viewFile.do?fileName=201516529IO.jpg"/>">查看</a> <a style