本篇需要時間研究,先整理相關資料
docx4j 支援 docx, xlsx, pptx 的檔案格式 下載 使用範例
jxl 支援舊版 excel 95,97,2000 的xls檔案格式 下載 範例教學 教學2
Apache POI 支援 doc, docx, xls, xlsx, ppt, pptx 下載 範例 範例2 API
2013年4月16日 星期二
2013年4月5日 星期五
[Java]透過HttpURLConnection進行檔案下載續傳
參考自這裡
一般瀏覽器對server發出的Request表頭如下:
GET /down.zip HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-
excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: zh-tw
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Connection: Keep-Alive
Server收到request之後,做出的回應表頭如下:
200
Content-Length=106786028
Accept-Ranges=bytes
Date=Mon, 30 Apr 2001 12:56:11 GMT
ETag=W/"02ca57e173c11:95b"
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
語法如下:
一般瀏覽器對server發出的Request表頭如下:
GET /down.zip HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-
excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: zh-tw
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Connection: Keep-Alive
Server收到request之後,做出的回應表頭如下:
200
Content-Length=106786028
Accept-Ranges=bytes
Date=Mon, 30 Apr 2001 12:56:11 GMT
ETag=W/"02ca57e173c11:95b"
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
語法如下:
URL url = new URL("目標網址"); HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection(); //設定 User-Agent httpConnection.setRequestProperty("User-Agent","NetFox"); //設定斷點續傳位置,"RANGE" httpConnection.setRequestProperty("RANGE","bytes=2000070"); //取得輸入流 InputStream input = httpConnection.getInputStream(); //儲存檔案 RandomAccess oSavedFile = new RandomAccessFile("檔名","rw"); long nPos = 2000070;//原則上應該跟斷點的bytes數一樣 // 定位文件指標到nPos位置 oSavedFile.seek(nPos); byte[] b = new byte[1024]; int nRead; // 從輸入流中讀入文件,然後寫入 while((nRead=input.read(b,0,1024)) > 0) { oSavedFile.write(b,0,nRead); }
訂閱:
文章 (Atom)