1. 程式人生 > >利用HttpURLConnection實現遠端下載檔案

利用HttpURLConnection實現遠端下載檔案

/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("==========下載出錯了!!===========");
}
}