zoukankan      html  css  js  c++  java
  • Struts2中文件下载

    在struts.xml中配置如下

    1         <action name="download" class="cn.itcast.domain.User" method="download">
    2             <result type="stream" name="success">
    3                 <param name="contentType">application/octet-stream</param>
    4                 <param name="inputStream">inputStream</param><!-- 输入是对应的动作类中的那个字段 -->
    5                 <param name="contentDisposition">attachment;filename=${filename}</param><!-- 要下载的文件名 -->
    6             </result>

    jsp页面中

    user为action中传来的

    1           <c:url value="/user/download" var="url">
    2               <c:param name="path" value="${user.path}"></c:param>
    3               <c:param name="filename" value="${user.filename}"></c:param>
    4           </c:url>
    5           <a href="${url}">下载</a>

    在User.java中

    class User{
        private String path;        //文件保存的路径
        private String filename;    //文件名
    //文件下载  固定名字
        private InputStream inputStream;
        public InputStream getInputStream() {
            return inputStream;
        }
        public void setInputStream(InputStream inputStream) {
            this.inputStream = inputStream;
        }
    
        public String download()
        {
            String storePath=ServletActionContext.getServletContext().getRealPath("/files");
            System.out.println("before" +path +"   "+ filename);
            //事实证明struts2中处理了相关参数, 并且通过url传输传给 path, filename中的值
    //        path=ServletActionContext.getRequest().getParameter("path");
    //        filename=ServletActionContext.getRequest().getParameter("filename");
            System.out.println("after" +path +"   "+ filename);
            try {
                inputStream=new FileInputStream(storePath+"\"+path+"\"+filename);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return this.SUCCESS;
        }
    }
  • 相关阅读:
    BigDecimal的一些用法
    java文件读写实例
    2017java文本文件操作(读写操作)
    java一些必会算法
    代码规范、如何写出好代码
    File available()方法
    Java当中的JVM
    分布式锁机制
    异常处理---抛与踹
    while eles
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3770926.html
Copyright © 2011-2022 走看看