通過url把文件下載到瀏覽器上

工具類:

public static void download(String url,String name,HttpServletRequest request, HttpServletResponse response) {
        File fileurl = new File(url);
        //瀏覽器下載後的文件名稱showValue,
        String showValue = name;
        //將需要的文件轉成byte數組,爲bytes
        File file = new File(url);
        byte[] bytes = FileToByte.File2byte(file);
        try {
            //根據條件得到文件路徑
            System.out.println("===========文件路徑===========" + fileurl);
            //將文件讀入文件流
            InputStream inStream = new ByteArrayInputStream(bytes);
            //獲得瀏覽器代理信息
            final String userAgent = request.getHeader("USER-AGENT");
            //判斷瀏覽器代理並分別設置響應給瀏覽器的編碼格式
            String finalFileName = URLEncoder.encode(showValue, "UTF8");//其他瀏覽器
            //設置HTTP響應頭
            response.reset();//重置 響應頭
            response.setContentType("application/x-download");//告知瀏覽器下載文件,而不是直接打開,瀏覽器默認爲打開
            response.addHeader("Content-Disposition", "attachment;filename=\"" + finalFileName + "\"");//下載文件的名稱

            // 循環取出流中的數據
            byte[] b = new byte[1024];
            int len;
            while ((len = inStream.read(b)) > 0) {
                response.getOutputStream().write(b, 0, len);
            }
            inStream.close();
            response.getOutputStream().close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章