工具類:
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();
}
}