利用HttpURLConnection實現遠端下載檔案
阿新 • • 發佈:2019-02-08
/files/document/使用者.txt" ;
URL url = new URL(fileurl);
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
urlc.setRequestProperty("Accept-Language", "zh-CN");
// 設定字元編碼
urlc.setRequestProperty("Charset", "UTF-8");
String realname = fileName;
//將檔案讀入檔案流
InputStream inStream = urlc.getInputStream();
//設定瀏覽器代理資訊
String agent = request.getHeader("USER-AGENT");
//判斷瀏覽器代理並分別設定響應給瀏覽器的編碼格式
String finalFileName = null;
if(agent != null && agent.indexOf("MSIE") == -1) {// FF
realname = "=?UTF-8?B?" + (new String(Base64.encodeBase64(realname.getBytes("UTF-8")))) + "?=";
response.setHeader("content-disposition", "attachment;filename=" + realname);
} else { // IE
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
}
// 迴圈取出流中的資料
byte[] b = new byte[1024];
int len;
while ((len = inStream.read(b)) > 0){
response.getOutputStream().write(b, 0, len);
}
inStream.close();
response.getOutputStream().close();
urlc.disconnect();
logger.info("============下載成功了!!===========");
}catch(Exception e) {
e.printStackTrace();
logger.info("==========下載出錯了!!===========");
}
}
URL url = new URL(fileurl);
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
urlc.setRequestProperty("Accept-Language", "zh-CN");
// 設定字元編碼
urlc.setRequestProperty("Charset", "UTF-8");
String realname = fileName;
//將檔案讀入檔案流
InputStream inStream = urlc.getInputStream();
//設定瀏覽器代理資訊
String agent = request.getHeader("USER-AGENT");
//判斷瀏覽器代理並分別設定響應給瀏覽器的編碼格式
String finalFileName = null;
if(agent != null && agent.indexOf("MSIE") == -1) {// FF
realname = "=?UTF-8?B?" + (new String(Base64.encodeBase64(realname.getBytes("UTF-8")))) + "?=";
response.setHeader("content-disposition", "attachment;filename=" + realname);
} else { // IE
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
}
// 迴圈取出流中的資料
byte[] b = new byte[1024];
int len;
while ((len = inStream.read(b)) > 0){
response.getOutputStream().write(b, 0, len);
}
inStream.close();
response.getOutputStream().close();
urlc.disconnect();
logger.info("============下載成功了!!===========");
}catch(Exception e) {
e.printStackTrace();
logger.info("==========下載出錯了!!===========");
}
}