[英]How to get filename and extension from web URL also from URL with additional parameters
我努力了
new File(new URI(url).getPath()).getName()
得到名字和
fileName.substring(i+1);
得到擴展
但是有些網址是有問題的,如果我有類似的東西,這種方法就行不通
https://wallpaperclicker.com/wallpaper/Download.aspx?wallfilename=samplehd-pics-87908344.jpg"
要么
https://spxt-sjc2-1.cdnagram.com/t51.2885-15/s980x480/e35/20969138_31213_564630462529635_5170096177993632_n.jpg?ig_cache_key=M0003NTyMTc3MjY5MDE4Nw%3D%3D.2"
我需要一個可以正確處理帶有附加參數的URL的解決方案。
無法從URI中找到正確的擴展名。 網絡服務器可以欺騙您下載.sh,其中的鏈接可能會說它是.jpg(符號鏈接)。
提到這個問題,您可以建立連接並使用getContentType等來獲取服務器解析的URL設置。
URL url = new URL(fileURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
int responseCode = httpConn.getResponseCode();
// always check HTTP response code first
if (responseCode == HttpURLConnection.HTTP_OK) {
String fileName = "";
String disposition = httpConn.getHeaderField("Content-Disposition");
String contentType = httpConn.getContentType();
if (disposition != null) {
// extracts file name from header field
int index = disposition.indexOf("filename=");
if (index > 0) {
fileName = disposition.substring(index + 10,
disposition.length() - 1);
}
}
}
注意:代碼未經測試。 希望它能給您提示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.