• ‘初学’文件下载


    文件下载

    1.准备页面index.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%>">
    
      </head>
      
      <body>
        <a href="download.action?fileName=12092-106.j31pg">点击此处下载文档</a>
      </body>
    </html>
    

     2.struts.xml中

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC 
    	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    	"http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    	<!-- 动态方法调用 -->
     
        <constant name="struts.devMode" value="false" />
        
        
        <package name="default" namespace="/" extends="struts-default">
        	
            <action name="download" class="cn.happy.action.FileDownAction" method="execute">
            	<param name="inputPath">/image</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>
        </package>
    </struts>
    

     3.web.xml中

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <filter>
    		<filter-name>struts2</filter-name>
    		<filter-class>
    			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    		</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>struts2</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    	
    	<welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    	
    </web-app>
    

      4.java类

    package cn.happy.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 FileDownAction extends ActionSupport {
             //读取下载文件的目录
    	private String inputPath;
    	//下载文件的文件名
    	private String fileName;
    	//读取下载文件的输入流
    	@SuppressWarnings("unused")
    	private InputStream inputStream;
    	//下载文件类型
    	private String conentType;
    	
    	@Override
    	public String execute() throws Exception {
    		return SUCCESS;
    				
    	}
    	
    	//创建inputStream输入流 
    		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;
    	}
    	
    	
    	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 getConentType() {
    		return conentType;
    	}
    	public void setConentType(String conentType) {
    		this.conentType = conentType;
    	}
    	
    }
    

      再给你们配张图

  • 相关阅读:
    jquery实现瀑布文字
    文本域、bootstrap-table显示以及MySQL三者间的换行符问题
    Mybatis框架的搭建和基本使用方法
    解决ajax多次绑定问题
    浅析JSONP与CROS技术解决跨域问题
    使用Ajax+nodejs实现页面头像上传功能
    自写滚屏组件
    express框架的ejs模板引擎渲染html页面
    自写轮播组件
    mousewheel事件细节
  • 原文地址:https://www.cnblogs.com/yangronglin/p/5945287.html
Copyright © 2020-2023  润新知