簡體   English   中英

如何從帶有附加參數的URL也從Web URL獲取文件名和擴展名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM