• Struts文件下载


    /* 文件下载的先决条件
     * 1. 在xml配置文件中必须配置一个type="stream"的result, result中不需要填写任何内容

    * 2. 在Action中编写一个接收文件名的String, 这个变量名必须和JSP页面的参数名完全吻合
    * 3. 可以在result中配置一个名为"contentDisposition"的参数, 值是attachment;fileName=${fileName}
    * * attachment表示当前下载的内容让浏览器以下载的方式打开 * * ${fileName}表示从对应的Action中获取要下载的文件名, Action中必须提供对应参数的getter方法
    */

    1.代码示例:

    --->Action类

    public class FileDownLoadAction extends ActionSupport {
        private static final long serialVersionUID = 1L;
        //文件传过来的名字
        private String fileName;
    
        public String getFileName() {
            return fileName;
        }
    
        public void setFileName(String fileName) {
            this.fileName = fileName;
        }
    
        public String execute() throws Exception {
            System.out.println("FileDownLoadAction.execute()");
            if (fileName == null) {
                System.out.println("文件不存在");
            }
            System.out.println(fileName);
            return SUCCESS;
        }
    //下载文件的主要业务处理
        public FileInputStream getInputStream() throws Exception {
            //获取到"/FileTransport"的路径
            String path = ServletActionContext.getServletContext().getRealPath("/FileTransport");
            //获取到"/FileTransport"路径下和接受到的文件名一样
            File file = new File(path, fileName);
            //返回获取到的文件
            return new FileInputStream(file);
        }
    }

    --->filedownload.jsp

    <body>
                提交过去的值为文件名相同
    <a href="${pageContext.request.contextPath}/filedownload?fileName=index.txt">文件下载</a> </body>

    ----->配置struts.xml文件

    <action name="filedownload"  class="com.gxxy.filetransport.fileupload.FileDownLoadAction">
                <result>/JSP/filetransport/filedownload.jsp</result>
                <result type="stream">
                    <param name="contentDisposition">attachment;fileName=${fileName}</param>
                </result>
     </action>
  • 相关阅读:
    leetcode Remove Nth Node From End of List
    leetcode Plus One
    leetcode climbing stairs
    leetcode Merge Two Sorted Lists
    leetcode Maximum Subarray
    leetcode Binary Tree Level Order Traversal I II
    leetcode Pascal's Triangle II
    leetcode pascal's triangle
    leetcode valid parentheses
    leetcode Path Sum
  • 原文地址:https://www.cnblogs.com/zhang-bo/p/6538837.html
Copyright © 2020-2023  润新知