问题发生:

查看源码发现:

因为没有文件类型所以在转存图片的时候出错了

谷歌百度了一下发现解决办法:

URLConnection class provides two static methods to help programs figure out the MIME type of some data; you can use these if the content type just isn't available or if you have reason to believe that the content type you're given isn't correct。

就是说URLConnection提供了两种方法可以猜测(根据实测结果,这个猜测是相当的准)数据的MIME类型。

第一个是:

public static String guessContentTypeFromName(String name)

这个方法根据URL文件部分的后缀名来判断类型,跟之前我的方法一样。这个不能解决上面那个问题。

第二个是:

public static String guessContentTypeFromStream(InputStream in)

这个方法是根据流的前面几个字节来判断类型,这个就不需要文件后缀名了,完全可以解决上面那个问题。

BufferedInputStream bis = null;

HttpURLConnection urlconnection = null;

URL url = null;

url = new URL(strUrl);

urlconnection = (HttpURLConnection) url.openConnection();

urlconnection.connect();

bis = new BufferedInputStream(urlconnection.getInputStream());

System.out.println("file type:"+HttpURLConnection.guessContentTypeFromStream(bis));

但生产中发现有很多类型不能正确的判断出来,如bmp

然后继续各种找,最后解决了...

再看一下无后缀名的判断..

HTTP Content-type 对照表

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,比如用PHP输出图片文件、JSON数据、XML文件等非HTML内容时,就必须用header函数来指定Content-Type,才能达到输出一张图片或是其它指定内容类型的需求。

Application Type

文件扩展名Content-Type(Mime-Type)描述

.

application/x-

.*

application/octet-stream

二进制流,不知道下载文件类型

.pdf

application/pdf

PDF(Portable Document Format的简称,意为“便携式文件格式”)

.ai

application/postscript

PostScript(PS)是主要用于电子产业和桌面出版领域的一种页面描述语言和编程语言。

.xml

application/atom+xml

Atom feeds

.js

application/ecmascript

相当于application/javascript但是严格的处理规则

.edi

application/EDI-X12

EDI ANSI ASC X12数据

.edi

application/EDIFACT

EDI EDIFACT数据

.json

application/json

JSON(JavaScript Object Notation)

.js

application/javascript

ECMAScript/JavaScript(相当于application/ecmascript但是宽松的处理规则)

.ogg

application/ogg

Ogg, 视频文件格式

.rdf

application/rdf+xml

资源描述框架(Resource Description Framework,缩写 RDF),是万维网联盟(W3C)提出的一组标记语言的技术标准,以便更为丰富地描述和表达网络资源的内容与结构。

.xml

application/rss+xml

RSS(Really Simple Syndication,简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章、新闻、音频或视频的网摘

.xml

application/soap+xml

简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范,使用在计算机网络Web服务(web service)中,交换带结构信息。

.woff

application/font-woff

Web开放字体格式(Web Open Font Format,简称WOFF)是一种网页所采用的字体格式标准。(推荐使用;使用application/x-font-woff直到它变为官方标准)

.xhtml

application/xhtml+xml

可扩展超文本标记语言(eXtensible HyperText Markup Language,XHTML),是一种标记语言,表现方式与超文本标记语言(HTML)类似,不过语法上更加严格。

.xml

application/xml

可扩展标记语言(英语:eXtensible Markup Language,简称: XML),是一种标记语言。

.dtd

application/xml-dtd

XML文件的文件型别定义(Document Type Definition)可以看成一个或者多个XML文件的模板,在这里可以定义XML文件中的元素、元素的属性、元素的排列方式、元素包含的内容等等。

.xml

application/xop+xml

二进制优化封装协议(Xmlbinary Optimized Packaging)

.zip

application/zip

ZIP压缩文件

.gzip

application/gzip

Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。

.xls

application/x-xls

XLS 就是 Microsoft Excel 工作表,是一种非常常用的电子表格格式。

.001

application/x-001

.301

application/x-301

.906

application/x-906

.a11

application/x-a11

.awf

application/vnd.adobe.workflow

.bmp

application/x-bmp

.c4t

application/x-c4t

.cal

application/x-cals

.cdf

application/x-netcdf

.cel

application/x-cel

.cg4

application/x-g4

.cit

application/x-cit

.bot

application/x-bot

.c90

application/x-c90

.cat

application/vnd.ms-pki.seccat

.cdr

application/x-cdr

.cer

application/x-x509-ca-cert

.cgm

application/x-cgm

.cmx

application/x-cmx

.crl

application/pkix-crl

.csi

application/x-csi

.cut

application/x-cut

.dbm

application/x-dbm

.cmp

application/x-cmp

.cot

application/x-cot

.crt

application/x-x509-ca-cert

.dbf

application/x-dbf

.dbx

application/x-dbx

.dcx

application/x-dcx

.dgn

application/x-dgn

.dll

application/x-msdownload

.dot

application/msword

.der

application/x-x509-ca-cert

.dib

application/x-dib

.doc

application/msword

.drw

application/x-drw

.dwf

application/x-dwf

.dxb

application/x-dxb

.edn

application/vnd.adobe.edn

.dwg

application/x-dwg

.dxf

application/x-dxf

.emf

application/x-emf

.epi

application/x-epi

.eps

application/postscript

.exe

application/x-msdownload

.fdf

application/vnd.fdf

.eps

application/x-ps

.etd

application/x-ebx

.fif

application/fractals

.frm

application/x-frm

.gbr

application/x-gbr

.g4

application/x-g4

.gl2

application/x-gl2

.hgl

application/x-hgl

.hpg

application/x-hpgl

.hqx

application/mac-binhex40

.hta

application/hta

.gp4

application/x-gp4

.hmr

application/x-hmr

.hpl

application/x-hpl

.hrf

application/x-hrf

.icb

application/x-icb

.ico

application/x-ico

.ig4

application/x-g4

.iii

application/x-iphone

.ins

application/x-internet-signup

.iff

application/x-iff

.igs

application/x-igs

.img

application/x-img

.isp

application/x-internet-signup

.jpe

application/x-jpe

.js

application/x-javascript

.jpg

application/x-jpg

.lar

application/x-laplayer-reg

.latex

application/x-latex

.lbm

application/x-lbm

.ls

application/x-javascript

.ltr

application/x-ltr

.man

application/x-troff-man

.mdb

application/msaccess

.mac

application/x-mac

.mdb

application/x-mdb

.mfp

application/x-shockwave-flash

.mi

application/x-mi

.mil

application/x-mil

.mocha

application/x-javascript

.mpd

application/vnd.ms-project

.mpp

application/vnd.ms-project

.mpt

application/vnd.ms-project

.mpw

application/vnd.ms-project

.mpx

application/vnd.ms-project

.mxp

application/x-mmxp

.nrf

application/x-nrf

.out

application/x-out

.p12

application/x-pkcs12

.p7c

application/pkcs7-mime

.p7r

application/x-pkcs7-certreqresp

.pc5

application/x-pc5

.pcl

application/x-pcl

.pdx

application/vnd.adobe.pdx

.pgl

application/x-pgl

.pko

application/vnd.ms-pki.pko

.p10

application/pkcs10

.p7b

application/x-pkcs7-certificates

.p7m

application/pkcs7-mime

.p7s

application/pkcs7-signature

.pci

application/x-pci

.pcx

application/x-pcx

.pdf

application/pdf

.pfx

application/x-pkcs12

.pic

application/x-pic

.pl

application/x-perl

.plt

application/x-plt

.png

application/x-png

.ppa

application/vnd.ms-powerpoint

.pps

application/vnd.ms-powerpoint

.ppt

application/x-ppt

.prf

application/pics-rules

.prt

application/x-prt

.ps

application/postscript

.pwz

application/vnd.ms-powerpoint

.ra

audio/vnd.rn-realaudio

RealAudio是一种由RealNetworks发展的RealMedia多媒体音频文件格式,仅指RealPlayer中能够识别的音频文件,也可以理解为real格式的音频文件。

.ras

application/x-ras

.pot

application/vnd.ms-powerpoint

.ppm

application/x-ppm

.ppt

application/vnd.ms-powerpoint

.pr

application/x-pr

.prn

application/x-prn

.ps

application/x-ps

.ptn

application/x-ptn

.red

application/x-red

.rjs

application/vnd.rn-realsystem-rjs

.rlc

application/x-rlc

.rm

application/vnd.rn-realmedia

.rat

application/rat-file

.rec

application/vnd.rn-recording

.rgb

application/x-rgb

.rjt

application/vnd.rn-realsystem-rjt

.rle

application/x-rle

.rmf

application/vnd.adobe.rmf

.rmj

application/vnd.rn-realsystem-rmj

.rmp

application/vnd.rn-rn_music_package

.rmvb

application/vnd.rn-realmedia-vbr

.rnx

application/vnd.rn-realplayer

.rpm

audio/x-pn-realaudio-plugin

.rms

application/vnd.rn-realmedia-secure

.rmx

application/vnd.rn-realsystem-rmx

.rsml

application/vnd.rn-rsml

.rtf

application/msword

.rv

video/vnd.rn-realvideo

.sat

application/x-sat

.sdw

application/x-sdw

.slb

application/x-slb

.rtf

application/x-rtf

.sam

application/x-sam

.sdp

application/sdp

.sit

application/x-stuffit

.sld

application/x-sld

.smi

application/smil

.smk

application/x-smk

.smil

application/smil

.spc

application/x-pkcs7-certificates

.spl

application/futuresplash

.ssm

application/streamingmedia

.stl

application/vnd.ms-pki.stl

.sst

application/vnd.ms-pki.certstore

.tdf

application/x-tdf

.tga

application/x-tga

.sty

application/x-sty

.swf

application/x-shockwave-flash

.tg4

application/x-tg4

.tif

application/x-tif

.vdx

application/vnd.visio

.vpg

application/x-vpeg005

.vsd

application/x-vsd

.vst

application/vnd.visio

.vsw

application/vnd.visio

.vtx

application/vnd.visio

.torrent

application/x-bittorrent

.vda

application/x-vda

.vsd

application/vnd.visio

.vss

application/vnd.visio

.vst

application/x-vst

.vsx

application/vnd.visio

.wb1

application/x-wb1

.wb3

application/x-wb3

.wiz

application/msword

.wk4

application/x-wk4

.wks

application/x-wks

.wb2

application/x-wb2

.wk3

application/x-wk3

.wkq

application/x-wkq

.wmf

application/x-wmf

.wmd

application/x-ms-wmd

.wp6

application/x-wp6

.wpg

application/x-wpg

.wq1

application/x-wq1

.wri

application/x-wri

.ws

application/x-ws

.wmz

application/x-ms-wmz

.wpd

application/x-wpd

.wpl

application/vnd.ms-wpl

.wr1

application/x-wr1

.wrk

application/x-wrk

.ws2

application/x-ws

.xdp

application/vnd.adobe.xdp

.xfd

application/vnd.adobe.xfd

.xfdf

application/vnd.adobe.xfdf

.xls

application/vnd.ms-excel

.xwd

application/x-xwd

.sis

application/vnd.symbian.install

.x_t

application/x-x_t

.apk

application/vnd.android.package-archive

.x_b

application/x-x_b

.sisx

application/vnd.symbian.install

.ipa

application/vnd.iphone

.xap

application/x-silverlight-app

.xlw

application/x-xlw

.xpl

audio/scpls

.anv

application/x-anv

.uin

application/x-icq

Text Type

文件扩展名Content-Type(Mime-Type)描述

.323

text/h323

.biz

text/xml

.cml

text/xml

.asa

text/asa

.asp

text/asp

.css

text/css

层叠样式表(英语:Cascading Style Sheets,简写CSS),又称串样式列表、层次结构式样式表文件,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。

.csv

text/csv

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

.dcd

text/xml

.dtd

text/xml

.ent

text/xml

.fo

text/xml

.htc

text/x-component

.html

text/html

.htx

text/html

.htm

text/html

.htt

text/webviewhtml

.jsp

text/html

.math

text/xml

.mml

text/xml

.mtx

text/xml

.plg

text/html

.rdf

text/xml

.rt

text/vnd.rn-realtext

.sol

text/plain

.spp

text/xml

.stm

text/html

.svg

text/xml

.tld

text/xml

.txt

text/plain

纯文字内容

.uls

text/iuls

.vml

text/xml

.tsd

text/xml

.vcf

text/x-vcard

.vxml

text/xml

.wml

text/vnd.wap.wml

.wsdl

text/xml

.wsc

text/scriptlet

.xdr

text/xml

.xql

text/xml

.xsd

text/xml

.xslt

text/xml

.xml

text/xml

.xq

text/xml

.xquery

text/xml

.xsl

text/xml

.xhtml

text/html

.odc

text/x-ms-odc

.r3t

text/vnd.rn-realtext3d

.sor

text/plain

Audio Type

文件扩展名Content-Type(Mime-Type)描述

.acp

audio/x-mei-aac

.aif

audio/aiff

.aiff

audio/aiff

.aifc

audio/aiff

.au

audio/basic

.la1

audio/x-liquid-file

.lavs

audio/x-liquid-secure

.lmsff

audio/x-la-lms

.m3u

audio/mpegurl

.midi

audio/mid

.mid

audio/mid

.mp2

audio/mp2

.mp3

audio/mp3

.mp4

audio/mp4

MP4,全称MPEG-4 Part 14,是一种使用MPEG-4的多媒体计算机文件格式,扩展名为.mp4,以存储数字音频及数字视频为主。

.mnd

audio/x-musicnet-download

.mp1

audio/mp1

.mns

audio/x-musicnet-stream

.mpga

audio/rn-mpeg

.pls

audio/scpls

.ram

audio/x-pn-realaudio

.rmi

audio/mid

.rmm

audio/x-pn-realaudio

.snd

audio/basic

.wav

audio/wav

.wax

audio/x-ms-wax

.wma

audio/x-ms-wma

Video Type

文件扩展名Content-Type(Mime-Type)描述

.asf

video/x-ms-asf

.asx

video/x-ms-asf

.avi

video/avi

.IVF

video/x-ivf

.m1v

video/x-mpeg

.m2v

video/x-mpeg

.m4e

video/mpeg4

.movie

video/x-sgi-movie

.mp2v

video/mpeg

.mp4

video/mpeg4

MP4,全称MPEG-4 Part 14,是一种使用MPEG-4的多媒体计算机文件格式,扩展名为.mp4,以存储数字音频及数字视频为主。

.mpa

video/x-mpg

.mpe

video/x-mpeg

.mpg

video/mpg

.mpeg

video/mpg

.mps

video/x-mpeg

.mpv

video/mpg

.mpv2

video/mpeg

.wm

video/x-ms-wm

.wmv

video/x-ms-wmv

.wmx

video/x-ms-wmx

.wvx

video/x-ms-wvx

Image Type

文件扩展名Content-Type(Mime-Type)描述

.tif

image/tiff

标签图像文件格式(Tagged Image File Format,简写为TIFF)是一种主要用来存储包括照片和艺术图在内的图像的文件格式。它最初由Aldus公司与微软公司一起为PostScript打印开发。

.fax

image/fax

.gif

image/gif

图像互换格式(GIF,Graphics Interchange Format)是一种位图图形文件格式,以8位色(即256种颜色)重现真彩色的图像。

.ico

image/x-icon

.jfif

image/jpeg

.jpe

image/jpeg

.jpeg

image/jpeg

JPEG是一种针对相片图像而广泛使用的一种有损压缩标准方法。

.jpg

image/jpeg

.net

image/pnetvue

.png

image/png

便携式网络图形(Portable Network Graphics,PNG)是一种无损压缩的位图图形格式,支持索引、灰度、RGB三种颜色方案以及Alpha通道等特性。

.rp

image/vnd.rn-realpix

.tif

image/tiff

.tiff

image/tiff

.wbmp

image/vnd.wap.wbmp

Message Type

文件扩展名Content-Type(Mime-Type)描述

.eml

message/rfc822

.mht

message/rfc822

.mhtml

message/rfc822

.nws

message/rfc822

Drawing Type

文件扩展名Content-Type(Mime-Type)描述

.907

drawing/907

.slk

drawing/x-slk

.top

drawing/x-top

Java Type

文件扩展名Content-Type(Mime-Type)描述

.class

java/*

.java

java/*

Other Type

文件扩展名Content-Type(Mime-Type)描述

.dwf

Model/vnd.dwf

java获取url前缀 jsp_Java获取URL链接的文件类型相关推荐

  1. Java获取URL链接的文件类型

    问题发生: Java从网络批量读取图片并保存至本网站服务器后再插入文章中 今天转入一篇文章 http://news.qq.com/a/20170605/045860.htm 发现图片未能成功上传 查看 ...

  2. java判断文件头_java通过文件头来判断文件类型

    importjava.io.FileInputStream;importjava.io.IOException;importjava.util.HashMap;importjava.util.Map. ...

  3. java获取url前缀 jsp_jsp 获取项目路径,java获取项目路径【蕃薯耀分享】

    1.  获取web服务器项目的真实物理路径 request.getSession().getServletContext().getRealPath("/"); 2.  相对路径的 ...

  4. java取邮箱前缀_java抓取网页或文件中的邮箱号码

    java抓取网页或文件中的邮箱号码 发布时间:2020-10-18 08:58:32 来源:脚本之家 阅读:69 作者:java大渣渣 本文实例为大家分享了java抓取邮箱号码的具体代码,供大家参考, ...

  5. cgm 转jpg java_获取图片,音频,视频,压缩包文件类型的工具类

    1.[代码][Java]代码 /* * Copyright (C) 2013 Simple Explorer * * This program is free software; you can re ...

  6. java工具:通过文件头的魔数判断文件类型

    k-file-detector github: https://github.com/kylin-hunter/k-file-detector 介绍 一个检查文件类型的工具. 软件描述 根据文件的魔数 ...

  7. 在Java中确定文件类型

    以编程方式确定文件的类型可能非常棘手,并且已经提出并实现了许多基于内容的文件标识方法. Java中有几种可用于检测文件类型的实现,其中大多数很大程度上或完全基于文件的扩展名. 这篇文章介绍了Java中 ...

  8. Realview MDK 链接脚本文件详细解析(一)–链接符号

    Realview MDK 链接脚本文件详细解析(一)–链接符号 Realview MDK 链接程序使用了两种方式控制程序的链接,即链接控制命令选项和链接脚本文件 链接脚本文件 链接脚本文件类型一般为: ...

  9. java 怎么做302重定向_利用Java怎么获取302重定向后的URL

    利用Java怎么获取302重定向后的URL 发布时间:2021-01-22 16:59:02 来源:亿速云 阅读:57 作者:Leah 本篇文章为大家展示了利用Java怎么获取302重定向后的URL, ...

最新文章

  1. VirtualBox虚拟机网络连接设置的四种方式
  2. TSP问题——动态规划
  3. Leangoo思维导图管理用户故事
  4. 麒麟系统兼容安卓生态 弥补生态短板
  5. 1.5万人!京东面向2021届高校毕业生开启最大规模校招
  6. Linux学习总结(18)——Linux使用init命令关机、重启、切换模式
  7. 成都二套房限购政策有哪些,看完就知道
  8. Socket 简介及面试题
  9. 民情二维码:居民诉求一个码收集
  10. PAT-两个数的简单计算器(简单编程题)
  11. CSRF攻击原理和防范措施
  12. Codeforces 1027C. Minimum Value Rectangle
  13. 千里马android framework开发解决Accessing hidden method限制,让应用访问隐藏方法(需要可以修改系统源码方案)
  14. 名帖46 北魏 楷书《镇北大将军元思墓志》
  15. EasyAR尝鲜系列教程之Hello EasyAR
  16. 基于STC89C52RC单片机的密码门锁
  17. NFT老炮CryptoPunks解析与实现
  18. SWPUCTF2019web题复现
  19. 一招搞定win10网络图标显示问题-网络图标不见了
  20. Java 日期转ISO8601标准时间

热门文章

  1. html5游戏读取音效源码,为你的html5网页添加音效示例
  2. Array数组对象sort排序方法
  3. 苹果屏幕上的小圆点_可能是世界上目前最优秀的屏幕?苹果只能做小弟
  4. 玩惯了“蚂蚁战术”的映客能驾驭元宇宙吗?
  5. 云计算有这样一项就可以啦,云计算技术与应用课程线上线下混合式教学改革与实践
  6. 工业相机、镜头、光源讲解及选型
  7. 阴阳师1月服务器维护,《阴阳师》1月13日服务器维护更新公告
  8. Android安卓网络手机相册管理系统
  9. google风格代码格式化配置(eclipse和idea)
  10. 【华为OD机试真题 JAVA】英文输入法