如何从互联网上下载文件,当它没有直接的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