Struts文件上传与下载详解_文件的下载

简介: Struts文件上传与下载详解_文件的下载

在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下struts里面是怎么个下载法!

1.写个文件下载的表单页面:

 

<a href="downLoad.action?fileName=1111.jpg">下载文件</a>


很简单的我们写一行就行,需要注意的是,既然你要下载的是111.jpg文件,那么你的服务器里面肯定得有一个111.jpg在里面放着才能供你下载,要不然会报错的!!!

      接着我们写一下DownLoadAction里面的方法:

package org.web;
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 String contentType;
  private InputStream inputStream;
  
  
  public String excute(){
    
    return SUCCESS;
  }
  public String getInputPath() {
    return inputPath;
  }
  public void setInputPath(String inputPath) {
    this.inputPath = inputPath;
  }
  public String getFileName() {
    return fileName;
  }
  public void setFileName(String fileName) {
    this.fileName = fileName;
  }
  public String getContentType() {
    return contentType;
  }
  public void setContentType(String contentType) {
    this.contentType = contentType;
  }
  public InputStream getInputStream() throws FileNotFoundException {
    String path=ServletActionContext.getServletContext().getRealPath(inputPath);
    return new BufferedInputStream(new FileInputStream(path+"/"+fileName));
  }
  public void setInputStream(InputStream inputStream) {
    this.inputStream = inputStream;
  }
    
  
}


这个 DownLoadAction里面很简单,重要的是struts.xml配置文件里面的东西,那么请大家看:

<!-- 文件下载 -->
    <action name="downLoad" class="org.web.DownLoadAction">
      <param name="inputPath">/upload</param>
      <result name="success" type="stream">
        <param name="contentType">application/octet-stream</param>
        <param name="inputName">inputStream</param>
        <param name="contentDisposition">
          
          attachment;filename="${fileName}"
        </param>
        <param name="bufferSize">4096</param>
      </result>
    </action>


这些文件上传和下载都是固定的套路,直接拿出来套上用就行!!!

相关文章
成功解决FileNotFoundError: [WinError 2] 系统找不到指定的文件
成功解决FileNotFoundError: [WinError 2] 系统找不到指定的文件。
成功解决FileNotFoundError: [WinError 2] 系统找不到指定的文件
|
传感器
岩土工程监测中温度对振弦传感器的影响有多大
岩土工程监测中,温度是一个重要的环境因素之一,它对振弦传感器的影响是不可忽视的。振弦传感器是一种用于测量土层振动情况的仪器,它的主要原理是通过测量传感器杆上的谐振频率来确定土层的振动特性。然而,温度的变化会对传感器的性能和测量结果产生一定的影响。
|
移动开发 前端开发 JavaScript
js实现图片压缩上传
最近在研究H5前端图片处理相关技术,方向有图片压缩、裁切、旋转、模糊等。
375 0
|
11月前
|
C语言
【数据结构】二叉树(c语言)(附源码)
本文介绍了如何使用链式结构实现二叉树的基本功能,包括前序、中序、后序和层序遍历,统计节点个数和树的高度,查找节点,判断是否为完全二叉树,以及销毁二叉树。通过手动创建一棵二叉树,详细讲解了每个功能的实现方法和代码示例,帮助读者深入理解递归和数据结构的应用。
693 8
|
11月前
|
监控 安全 jenkins
探索软件测试的奥秘:自动化测试框架的搭建与实践
【10月更文挑战第24天】在软件开发的海洋里,测试是确保航行安全的灯塔。本文将带领读者揭开软件测试的神秘面纱,深入探讨如何从零开始搭建一个自动化测试框架,并配以代码示例。我们将一起航行在自动化测试的浪潮之上,体验从理论到实践的转变,最终达到提高测试效率和质量的彼岸。
|
人工智能 Serverless API
一键服务化:从魔搭开源模型到OpenAI API服务
在多样化大模型的背后,OpenAI得益于在领域的先发优势,其API接口今天也成为了业界的一个事实标准。
一键服务化:从魔搭开源模型到OpenAI API服务
|
机器学习/深度学习 人工智能 监控
人工智能在图像识别中的应用:基于深度学习的算法实现
人工智能在图像识别中的应用:基于深度学习的算法实现
783 1
|
存储 SQL 数据库
Python 金融编程第二版(四)(4)
Python 金融编程第二版(四)
89 0
|
存储 算法 分布式数据库
SATX合约代币矩阵公排系统开发|方案设计|成熟模式
区块链技术共同构成了区块链体系结构,不同的区块链项目可能在这些技术上有所不同
|
人工智能 API
【AI大模型应用开发】【LangChain系列】实战案例6:利用大模型进行文本总结的方法探索,文本Token超限怎么办?
【AI大模型应用开发】【LangChain系列】实战案例6:利用大模型进行文本总结的方法探索,文本Token超限怎么办?
1557 0