Java获取URL链接的文件类型
问题发生:
Java从网络批量读取图片并保存至本网站服务器后再插入文章中
今天转入一篇文章 http://news.qq.com/a/20170605/045860.htm 发现图片未能成功上传
查看源码发现:
因为没有文件类型所以在转存图片的时候出错了
谷歌百度了一下发现解决办法:
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 | 二进制流,不知道下载文件类型 |
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 | |
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链接的文件类型的更多相关文章
- java 获取URL链接 内容
public static String getHtmlConentByUrl(String ssourl) { try { URL url = new URL( ...
- Java获取项目当前请求的全部URL,Java获取Referer,Java获取完整链接地址URL
Java获取项目当前请求的全部URL,Java获取Referer,Java获取完整链接地址URL >>>>>>>>>>>>> ...
- Java获取URL对应的资源
Java获取URL对应的资源 认识IP.认识URL是进行网络编程的第一步.java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源. 一.认识URL ...
- C#开发BIMFACE系列9 服务端API之获取应用支持的文件类型
系列目录 [已更新最新开发文章,点击查看详细] BIMFACE最核心能力之一是工程文件格式转换.无需安装插件,支持数十种工程文件格式在云端转换,完整保留原始文件信息.开发者将告别原始文件解析烦 ...
- java 获取url及url参数解析
java 获取url及url参数解析 一.url编码:URLEncoder.encode(userName); 二.url解码: URLDecoder.decode(userName);
- Java根据字节数据判断文件类型
通常,在WEB系统中,上传文件时都需要做文件的类型校验,大致有如下几种方法: 1. 通过后缀名,如exe,jpg,bmp,rar,zip等等. 2. 通过读取文件,获取文件的Content-type来 ...
- java通过文件头来判断文件类型
import java.io.FileInputStream; import java.io.IOException; import java.util.HashMap; import java.ut ...
- js 获取url链接的任意参数
<script> //先获取 当前的url链接 var url = location.href; //把url 链接切割为数组 var arr = url.split("&quo ...
- Java获取URL中的顶级域名domain的工具类
方式一: import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import jav ...
随机推荐
- shell加密
如何保护自己编写的shell程序要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1.加密 2.设定过期时间,下面以shc工具为例说明: 一.下载安装shc工具shc是一个加密she ...
- Learning coding online
A lot of online courses for coding skills are available nowadays, both free and non-free. I will col ...
- spark优化之并行度
这个其实我前面已经记录过了,这里在记录一下. 我可以通过参数人为的来控制分区大小,增加分区中即可增加任务的并行度,并行度高自然运行的就快了嘛. 官方推荐集群中每个cpu并行的任务是2-3个(也就是2- ...
- 030 RDD Join中宽依赖与窄依赖的判断
1.规律 如果JoinAPI之前被调用的RDD API是宽依赖(存在shuffle), 而且两个join的RDD的分区数量一致,join结果的rdd分区数量也一样,这个时候join api是窄依赖 除 ...
- scrollIntoView将指定元素定位到浏览器顶部,底部,中间
var element = document.getElementById("box"); element.scrollIntoView();//顶部 element.scroll ...
- P3402 最长公共子序列
P3402 最长公共子序列经典问题LCS-->LIS把第一数列转化成1~n,然后将第二个数列映射成1~n中的一些数,然后求第二个数列的LIS即可,然后用Bit求LIS,O(nlogN) //数据 ...
- 微信小程序之下拉刷新,上拉加载更多
近日开发微信小程序,发现上拉加载更多没有友好的API,而下拉刷新很nice,所以本人按照API,很简单的写了一个示例,希望对大家有帮助,本人用的是iview-webapp 小程序UI框架. 1. 首 ...
- Orleans安装
一.Nuget包Orleans NuGet软件包从v1.5.0开始在大多数情况下,您需要使用4个关键的NuGet包: 1,Microsoft Orleans Build-time Code Gener ...
- csdn 音乐 怎么拦截 提交后的程序 csdn 栏目 音乐 csdn 添加 音乐
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha csdn 栏目 音乐 csdn 添加 音乐 ======= <embed src= ...
- BZOJ.2456.mode(绝对众数)
题目链接 \(Description\) 限制空间(只能保留两个变量),求给定n个数中出现次数超过\(\frac{n}{2}\)的数. \(Solution\) 维护两个变量,\(now\)和\(cn ...