如何從互聯網上下載文件,當它沒有直接的URL?主要問題 - 我可以在哪裏取文件的名稱和擴展名?Java從互聯網下載文件沒有鏈接名稱?
例如,當URL =「defaultSite.com/topic/9772.png」時,我們可以取字符串的最後部分並創建文件「9772.png」,在那裏我們保存字節流。
但是從URL,如:
http://www.skype.com/go/getskype
https://www.dropbox.com/download?plat=win
我們不能把文件名,但字節流,我們可以沒有問題保存。那麼我該如何下載文件呢?
更新: MIME不能幫助,因爲我認爲,因爲文件可以有特定的(用戶創建的)擴展名,或者即使對於.exe文件它也返回給我應用程序/八位字節流。除了問題惠特文件名左。
upd2: 是的,服務器返回標題,但它可能沒有文件名。 有通過Skype例如:
conn.getHeaderField 0 : HTTP/1.1 200 OK
conn.getHeaderField 1 : nginx
conn.getHeaderField 2 : application/octet-stream
conn.getHeaderField 3 : 30619240
conn.getHeaderField 4 : Thu, 28 Feb 2013 19:35:47 GMT
conn.getHeaderField 5 : bytes
conn.getHeaderField 6 : max-age=86400
conn.getHeaderField 7 : Thu, 04 Apr 2013 14:52:26 GMT
conn.getHeaderField 8 : keep-alive
conn.getHeaderField 9 : S
我需要一個可靠的方式來獲得名和擴展名。
網絡沒有文件的概念,只有URL。 – Zutty 2013-04-04 14:38:17
您需要了解HTTP響應和MIME – Ingo 2013-04-04 14:38:54
您得到的HTTP響應可能包含帶文件名的「Content-disposition」標頭,但它不是強制性的。 – khachik 2013-04-04 14:40:39