转载—从tomcat中下载文件

原文链接:走丢了~~


方案一

1、在tomcat 安装目录\conf\Catalina\localhost下建立任意文件名xml文件,比如:download_file.xml,内容如下:




2、配置web.xml(tomcat的配置文件):


        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            false
        
        1
    

改为:


        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            true
        
        1
    

然后重启tomcat,访问localhost:8080/download_file。

访问的工程路径就是刚才新建的那个xml文件的名字。

转载—从tomcat中下载文件_第1张图片

这样直接在图上点击文件名,或者对着浏览器输入文件的地址就能看到文件内容。连接另存为就能下载。如果文件名包含中文,在{tomcat_home}/conf/server.xml中加上URIEncoding="UTF-8,如下:


方案二

1.设置Tomcat的虚拟目录

{tomcat_home}/conf/serer.xml中的server/service/engine/host下增加标签:


2、配置web.xml(tomcat的配置文件):


        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            false
        
        1
    

改为:


        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            true
        
        1
    

访问:localhost:8080/demo

方案三:

使用servlet

/**   
 * This class is used for ...   
 * @author  dlf([email protected])
 * @version 1.0, 2017年4月8日 下午11:53:35   
 */
@WebServlet(urlPatterns="/module/book/downtest")
public class DownloadFile extends HttpServlet{
 
 
    /**
     * 
     */
    private static final long serialVersionUID = -8663217572193783988L;
    
     /** 
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // TODO Auto-generated method stub  
          
        //获得请求文件名  
        String filenameISO = (String) request.getParameter("filename");
        
        String filenameUTF= new String(filenameISO.getBytes("ISO-8859-1"), "UTF-8");  
        
        System.out.println(filenameUTF);  
          
        //设置文件MIME类型  
        response.setContentType(getServletContext().getMimeType(filenameUTF));  
        //设置Content-Disposition  
    //filename是ISO-8859-1的 如果改成utf-8 下载的文件名中就不能出现中文了
    //大家可以试试
        response.setHeader("Content-Disposition", "attachment;filename="+filenameISO);  
        response.setHeader("Content-type", "charset=UTF-8");  
        response.setCharacterEncoding("UTF-8");
        //读取目标文件,通过response将目标文件写到客户端  
 
 
        //System.out.println(fullFileName);  
        //读取文件  
        InputStream in = new FileInputStream(Config.FAILED_FILE_PATH+filenameUTF);  
        OutputStream out = response.getOutputStream();  
          
        //写文件  
        int b;  
        while((b=in.read())!= -1)  {  
            out.write(b);  
        }  
          
        in.close();  
        out.close();  
    }  
  
    /** 
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        doGet(request, response);
    }  
  
}

你可能感兴趣的:(转载—从tomcat中下载文件)