美文网首页
笔记:获取url的真实文件格式

笔记:获取url的真实文件格式

作者: IFLEU | 来源:发表于2020-08-30 13:55 被阅读0次

    有个地方要用到url地址转换为文件,但是url的地址不能得出明确的后缀格式,于是使用了URLConnection的方法。
    URLConnection的方法里有两个方法:

    • guessContentTypeFromName
    • guessContentTypeFromStream

    第一个是根据文件名来判断格式的,略过。第二个是通过流前面的几个字节来判断文件的格式。

    public static void main(String[] args) throws IOException {
            URL urlPath = new URL("xxxxxxxx");
            String type = HttpURLConnection.guessContentTypeFromStream(URLUtil.getStream(urlPath));
            System.out.println(type); //null
        }
    

    通过第二个方法获得的格式输出null,方法也不是特别合适,有些格式也判断不出来。

    最后通过url的Content-Type得出了文件的格式。

    Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP
    网页点击的结果却是下载一个文件或一张图片的原因。Content-Type 标头告诉客户端实际返回的内容的内容类型。

    这里引用了依赖

    <!-- https://mvnrepository.com/artifact/org.apache.tika/tika-core -->
    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.22</version>
    </dependency>
    

    测试使用

        public static void main(String[] args) throws IOException, MimeTypeException {
                URL urlPath = new URL("xxxxxxxx");
                String contentType = urlPath.openConnection().getContentType();
                MimeTypes allTypes = MimeTypes.getDefaultMimeTypes();
                MimeType jpeg = allTypes.forName(contentType);
                System.out.println(jpeg.getExtension()); //.pdf
         }
    

    可行

    相关文章

      网友评论

          本文标题:笔记:获取url的真实文件格式

          本文链接:https://www.haomeiwen.com/subject/eqcesktx.html