是否有可靠,快速的方法来确定图像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的连接,因为这应该是性能调用
答案 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,它也可以工作吗?在网址中。