确定图片网址的文件扩展名

时间:2018-07-09 19:31:14

标签: java java-8

是否有可靠,快速的方法来确定图像URL的文件扩展名?我看到了一些选项,但是对于以下格式的图像,它们都不能始终如一地工作

https://cdn-image.blay.com/sites/default/files/styles/1600x1000/public/images/12.jpg?itok=e-zA1T

我尝试过:

new MimetypesFileTypeMap().getContentType(url)

产生通用的“ application / octet-stream”,在这种情况下,我使用以下两个:

Files.getFileExtension
FilenameUtils.getExtension

我想尽可能避免使用正则表达式,因此是否有另一个实用程序可以正常获取具有args(.jpeg?blahblah)的链接。我也想避免以任何方式下载图片或与url的连接,因为这应该是性能调用

2 个答案:

答案 0 :(得分:2)

如果您可以确信这些网址没有格式错误,怎么办:

FilenameUtils.getExtension(URI.create(url).getPath())

答案 1 :(得分:0)

您不能只看URL中的文件扩展名?就像这样:

public static String getFileExtension(String url) {
    int phpChar = url.length();
    for(int i = 0; i < url.length(); i++) {
        if(url.charAt(i) == '?') {
            phpChar = i;
            break;
        }
    }
    int character = phpChar - 1;
    while(url.charAt(character) != '.') character -= 1;
    return url.substring(character + 1, phpChar);
}

也许不是最优雅的解决方案,但是即使使用php,它也可以工作吗?在网址中。