3.文件下載

1.普通文件下載
使用超鏈接。缺點:1)暴露文件的路徑 2)擴展型和安全性不好
2.使用servlet程序下載(推薦)
 //1.得到響應的下載內容
        String fileName = "abc.txt";
        InputStream in = this.getServletContext().getResourceAsStream("/upload/"+fileName);
        //對文件名進行url編碼設置
        fileName = URLEncoder.encode(fileName,"utf-8");
        //判斷不同的瀏覽器
        String userAgent = req.getHeader("user-agent");
        String filefix = null;
        System.out.println(userAgent);
        if (userAgent.contains("Trident")){
            //IE
            filefix = "filename="+fileName;
        }else if (userAgent.contains("Firefox")) {
            //Fire
            filefix = "filename*=" + fileName;
        }else{
            filefix = "filename="+fileName;
        }
        //告訴瀏覽器去用以下的方式去打開
        resp.setHeader("Content-Disposition","attachment;"+filefix);

        //2.把本地文件發送給瀏覽器
        OutputStream out = resp.getOutputStream();
        byte[] buf = new byte[1024];
        int len = 0;
        while ((len=in.read(buf))!=-1){
            out.write(buf,0,len);
        }
        //關閉流
        out.close();
        in.close();
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,971評論 6 342
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,373評論 11 349
  • 每個女生都是某人心中的小女神, 有著無法取代的閃光點。 如果可以,為什么不讓自己的魅力值再爆表點。 來自:LOFTER
    墨心imo閱讀 635評論 1 5