=============================struts 文件下载  ==================================

步骤一: JSP页面
<a href="download.action?fileName=IMG_0443.JPG">点击此处下载图片</a>

步骤二: Action页面

package org.zm.action;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class DownLoadAction extends ActionSupport{
//读取下载文件的目录
private String inputPath;
//下载文件的文件名
private String fileName;
//读取下载文件的输入流
private InputStream inputStream;

//下载文件的类型
private String conetntType;

//创建InputStream输入流
public InputStream getInputStream() throws FileNotFoundException{
String path=ServletActionContext.getServletContext().
getRealPath(inputPath);
return new BufferedInputStream(new FileInputStream(path+"\\"+
fileName));
}

@Override
public String execute() {
return SUCCESS;
}
public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}

public String getConetntType() {
return conetntType;
}

public String getInputPath() {
return inputPath;
}

public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
public void setConetntType(String conetntType) {
this.conetntType = conetntType;
}
}

步骤三: Struts.xml文件
<action name="download" class="org.zm.action.DownLoadAction">
<param name="inputPath">/upload</param>
<result name="success" type="stream">
<param name="contentType">image/pjpeg</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>

提示: Stream结果类型
contentType: 设置发送到浏览器的MIME类型
contentLength: 文件大小
contentDisposition: 设置响应的HTTP头信息的Content-Disposition参数的值
inputName: 指定Action提供的inputStream类型的属性名称
bufferSize:设置读取和下载文件时缓冲区的大小

struts.xml文件和Action 这两处位置的变量名称一定要正确。

转载于:https://www.cnblogs.com/Theladyflower/p/4624228.html

struts 文件下载相关推荐

  1. java struts 文件下载_Struts2文件下载实例

    通过<Struts2文件下载简介>教程的学习,读者已经了解了使用 Struts2 框架实现在指定的目录中下载指定文件的功能.下面通过案例演示文件下载功能. 1)创建下载页面 在 strut ...

  2. Struts文件下载

    前三个动态提供 一般后面的两个就是用struts预设 1024b 即2KbcontentType="text/html";contentDisposition="atta ...

  3. Java进阶学习第十六天(Struts框架:配置、数据处理、自动封装、日期类型转换、文件上传)

    一.Struts2配置 1.Struts2的Action开发的几种方式 ① 方式1:继承ActionSupport(一般使用方法) public class UserAction extends Ac ...

  4. java web 获取根目录_javaweb中获取服务器端跟目录方法总结

    先说一下java工程下目录的获取的几种方法,有用的看客可以看一下: 1.new File("relative path").getAbsolutePath(); 2.System. ...

  5. 【视频教程免费领取】聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎

    领取方式 关注公众号,发送Python0407获取下载链接. 扫码关注公众号,公众号回复 Python0407 获取下载地址 目录结构 目录:/读书ReadBook [57.6G] ┣━━48G全套J ...

  6. 【视频教程免费领取】48G全套Java视频教程,从入门到跑路!

    领取方式 关注公众号,发送java0407获取下载链接. 扫码关注公众号,公众号回复 java0407 获取下载地址 目录结构 目录:/读书ReadBook [57.6G] ┣━━48G全套Java视 ...

  7. 走进Struts2(六)— 文件上传和下载

    一.文件上传 实现文件上传的方式有很多种,比如Apache的Common-FileUpload,但是实现起来非常的繁琐,而Struts2来实现文件上传则简单的多,默认也是基于Common-FileUp ...

  8. struts实战--文件下载

    struts实现文件下载 一.页面 这个页面的里面的简历资料就是我们的下载入口. <%@ page language="java" pageEncoding="UT ...

  9. 使用Struts 2框架实现文件下载

    从服务器发送一个文件到浏览器需要以下几个步骤 把HTTP响应里的ContentType标头设置为被下载文件的内容类型.ContentType标头的作用是表明数据包里的数据是什么类型, 它由一个多媒体类 ...

最新文章

  1. 端口如何支持非localhost访问_Spring Boot 教程:CORS 支持
  2. git clone 一些简单笔记
  3. neo4j设置节点或者边的显示,包括颜色、属性、大小
  4. poj 3460 bookstore
  5. MySQL Administrator
  6. vue.js入门环境搭建
  7. java使用hashset_Java集合(二)HashSet的使用
  8. 从PCI上读取数据 线程和定时器效率
  9. 在HTML 页面中如何显示带圈圈的数字
  10. mysql查询记录总数_MySQL记录总条数实现查询优化
  11. 暴躁是企业家的性格?
  12. base64格式转为二进制流
  13. phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
  14. 【IOS】《捕鱼达人》的简单实现(一)
  15. 【ubuntu】Ubuntu系统下安装石墨文档
  16. Stochastic Approximation
  17. 190822——喜欢
  18. 小学计算机课第二课堂活动,趣味课堂 童真飞扬 ——我校小学部开设丰富多彩的第二课堂...
  19. EXCEL函数篇之一文读懂VLOOKUP精准查找、近似查找、模糊查找的区别
  20. Deep Learning Exercise: Linear Regression

热门文章

  1. shell脚本修复MySQL主从同步
  2. WPF MultiSelect模式下ListBox 实现多个ListBoxItem拖拽
  3. 第二章 第三节 创建第一个程序
  4. 【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )
  5. 【报错信息】Google Play 上架报错 ( Your app contains ads that do not comply with our Families ad | 退出亲子同乐计划 )
  6. 【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
  7. 【Android 插件化】Hook 插件化框架总结 ( 插件包管理 | Hook Activity 启动流程 | Hook 插件包资源加载 ) ★★★
  8. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )
  9. 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
  10. Mac下web自动化环境部署