预览图片pdf等文件
文件下载直接返回流即可,
但是如果返回图片pdf等,不想下载只想预览下,
即可以设置不同的头,返回不同的预览流。
/*** 文件预览** @param bucketName 桶名称* @param request 请求* @param response 请求响应*/public static void downloadFile(String bucketName, String originalName,HttpServletRequest request,HttpServletResponse response) {try {InputStream file = getObject (bucketName, originalName);//文件名乱码处理String useragent = request.getHeader ("USER-AGENT").toLowerCase ();if (useragent.contains ("msie") || useragent.contains ("like gecko") || useragent.contains ("trident")) {originalName = URLEncoder.encode (originalName, StandardCharsets.UTF_8.displayName ());} else {originalName = new String (originalName.getBytes (StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);}response.setCharacterEncoding ("UTF-8");switchSetContentType (response, originalName);
// response.setHeader ("Content-Disposition", "attachment;filename=" + originalName);ServletOutputStream servletOutputStream = response.getOutputStream ();int len;byte[] buffer = new byte[1024];while ((len = file.read (buffer)) > 0) {servletOutputStream.write (buffer, 0, len);}servletOutputStream.flush ();file.close ();servletOutputStream.close ();} catch (Exception e) {e.printStackTrace ();log.error (String.format ("下载文件:%s异常 ", originalName));}}/*** 根据后缀名 来分辨需要返回给页面展示 而非下载 二进制流* 不设置caontentType 默认就是二进制流 application/octet-stream* 二进制流的返回 页面回直接下载而非展示** @param response* @param originalName*/private static void switchSetContentType(HttpServletResponse response, String originalName) {if (!StringUtils.isEmpty (originalName)) {if (originalName.endsWith (".png")) {response.setContentType ("image/png");}if (originalName.endsWith (".jpg")) {response.setContentType ("image/jpeg");}if (originalName.endsWith (".pdf")) {response.setContentType ("application/pdf");}if (originalName.endsWith (".doc")) {response.setContentType ("application/msword");}if (originalName.endsWith (".xls")) {response.setContentType ("application/vnd.ms-excel");}//-、、、、、可以根据后缀名设置不通的返回类型}}
其中getObject()方法不需要理会,你在你本地随便找个文件new 一个输入流,
继续下边的代码就可以。
除了常见的pdf,jpg,img,png等格式,你还可以返回其他的预览格式,
但最终显示与否,需要看你的浏览器是否支持该格式,你使用的前端插件是否可以展示这块。
文件扩展名 |
Content-Type(Mime-Type) |
文件扩展名 |
Content-Type(Mime-Type) |
.*( 二进制流,不知道下载文件类型) |
application/octet-stream |
.tif |
image/tiff |
0.001 |
application/x-001 |
0.301 |
application/x-301 |
0.323 |
text/h323 |
0.906 |
application/x-906 |
0.907 |
drawing/907 |
.a11 |
application/x-a11 |
.acp |
audio/x-mei-aac |
.ai |
application/postscript |
.aif |
audio/aiff |
.aifc |
audio/aiff |
.aiff |
audio/aiff |
.anv |
application/x-anv |
.asa |
text/asa |
.asf |
video/x-ms-asf |
.asp |
text/asp |
.asx |
video/x-ms-asf |
.au |
audio/basic |
.avi |
video/avi |
.awf |
application/vnd.adobe.workflow |
.biz |
text/xml |
.bmp |
application/x-bmp |
.bot |
application/x-bot |
.c4t |
application/x-c4t |
.c90 |
application/x-c90 |
.cal |
application/x-cals |
.cat |
application/vnd.ms-pki.seccat |
.cdf |
application/x-netcdf |
.cdr |
application/x-cdr |
.cel |
application/x-cel |
.cer |
application/x-x509-ca-cert |
.cg4 |
application/x-g4 |
.cgm |
application/x-cgm |
.cit |
application/x-cit |
.class |
java/* |
.cml |
text/xml |
.cmp |
application/x-cmp |
.cmx |
application/x-cmx |
.cot |
application/x-cot |
.crl |
application/pkix-crl |
.crt |
application/x-x509-ca-cert |
.csi |
application/x-csi |
.css |
text/css |
.cut |
application/x-cut |
.dbf |
application/x-dbf |
.dbm |
application/x-dbm |
.dbx |
application/x-dbx |
.dcd |
text/xml |
.dcx |
application/x-dcx |
.der |
application/x-x509-ca-cert |
.dgn |
application/x-dgn |
.dib |
application/x-dib |
.dll |
application/x-msdownload |
.doc |
application/msword |
.dot |
application/msword |
.drw |
application/x-drw |
.dtd |
text/xml |
.dwf |
Model/vnd.dwf |
.dwf |
application/x-dwf |
.dwg |
application/x-dwg |
.dxb |
application/x-dxb |
.dxf |
application/x-dxf |
.edn |
application/vnd.adobe.edn |
.emf |
application/x-emf |
.eml |
message/rfc822 |
.ent |
text/xml |
.epi |
application/x-epi |
.eps |
application/x-ps |
.eps |
application/postscript |
.etd |
application/x-ebx |
.exe |
application/x-msdownload |
.fax |
image/fax |
.fdf |
application/vnd.fdf |
.fif |
application/fractals |
.fo |
text/xml |
.frm |
application/x-frm |
.g4 |
application/x-g4 |
.gbr |
application/x-gbr |
. |
application/x- |
.gif |
image/gif |
.gl2 |
application/x-gl2 |
.gp4 |
application/x-gp4 |
.hgl |
application/x-hgl |
.hmr |
application/x-hmr |
.hpg |
application/x-hpgl |
.hpl |
application/x-hpl |
.hqx |
application/mac-binhex40 |
.hrf |
application/x-hrf |
.hta |
application/hta |
.htc |
text/x-component |
.htm |
text/html |
.html |
text/html |
.htt |
text/webviewhtml |
.htx |
text/html |
.icb |
application/x-icb |
.ico |
image/x-icon |
.ico |
application/x-ico |
.iff |
application/x-iff |
.ig4 |
application/x-g4 |
.igs |
application/x-igs |
.iii |
application/x-iphone |
.img |
application/x-img |
.ins |
application/x-internet-signup |
.isp |
application/x-internet-signup |
.IVF |
video/x-ivf |
.java |
java/* |
.jfif |
image/jpeg |
.jpe |
image/jpeg |
.jpe |
application/x-jpe |
.jpeg |
image/jpeg |
.jpg |
image/jpeg |
.jpg |
application/x-jpg |
.js |
application/x-javascript |
.jsp |
text/html |
.la1 |
audio/x-liquid-file |
.lar |
application/x-laplayer-reg |
.latex |
application/x-latex |
.lavs |
audio/x-liquid-secure |
.lbm |
application/x-lbm |
.lmsff |
audio/x-la-lms |
.ls |
application/x-javascript |
.ltr |
application/x-ltr |
.m1v |
video/x-mpeg |
.m2v |
video/x-mpeg |
.m3u |
audio/mpegurl |
.m4e |
video/mpeg4 |
.mac |
application/x-mac |
.man |
application/x-troff-man |
.math |
text/xml |
.mdb |
application/msaccess |
.mdb |
application/x-mdb |
.mfp |
application/x-shockwave-flash |
.mht |
message/rfc822 |
.mhtml |
message/rfc822 |
.mi |
application/x-mi |
.mid |
audio/mid |
.midi |
audio/mid |
.mil |
application/x-mil |
.mml |
text/xml |
.mnd |
audio/x-musicnet-download |
.mns |
audio/x-musicnet-stream |
.mocha |
application/x-javascript |
.movie |
video/x-sgi-movie |
.mp1 |
audio/mp1 |
.mp2 |
audio/mp2 |
.mp2v |
video/mpeg |
.mp3 |
audio/mp3 |
.mp4 |
video/mpeg4 |
.mpa |
video/x-mpg |
.mpd |
application/vnd.ms-project |
.mpe |
video/x-mpeg |
.mpeg |
video/mpg |
.mpg |
video/mpg |
.mpga |
audio/rn-mpeg |
.mpp |
application/vnd.ms-project |
.mps |
video/x-mpeg |
.mpt |
application/vnd.ms-project |
.mpv |
video/mpg |
.mpv2 |
video/mpeg |
.mpw |
application/vnd.ms-project |
.mpx |
application/vnd.ms-project |
.mtx |
text/xml |
.mxp |
application/x-mmxp |
.net |
image/pnetvue |
.nrf |
application/x-nrf |
.nws |
message/rfc822 |
.odc |
text/x-ms-odc |
.out |
application/x-out |
.p10 |
application/pkcs10 |
.p12 |
application/x-pkcs12 |
.p7b |
application/x-pkcs7-certificates |
.p7c |
application/pkcs7-mime |
.p7m |
application/pkcs7-mime |
.p7r |
application/x-pkcs7-certreqresp |
.p7s |
application/pkcs7-signature |
.pc5 |
application/x-pc5 |
.pci |
application/x-pci |
.pcl |
application/x-pcl |
.pcx |
application/x-pcx |
|
application/pdf |
|
application/pdf |
.pdx |
application/vnd.adobe.pdx |
.pfx |
application/x-pkcs12 |
.pgl |
application/x-pgl |
.pic |
application/x-pic |
.pko |
application/vnd.ms-pki.pko |
.pl |
application/x-perl |
.plg |
text/html |
.pls |
audio/scpls |
.plt |
application/x-plt |
.png |
image/png |
.png |
application/x-png |
.pot |
application/vnd.ms-powerpoint |
.ppa |
application/vnd.ms-powerpoint |
.ppm |
application/x-ppm |
.pps |
application/vnd.ms-powerpoint |
.ppt |
application/vnd.ms-powerpoint |
预览图片pdf等文件相关推荐
- 文件在线预览 图片 PDF Excel Word
1.前端实现pdf文件在线预览功能 方式一.pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面.在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签href属性实现预览 <ah ...
- php 在线预览word pdf等文件
直接上代码 <td class='text-left nowrap'><a href="http://view.officeapps.live.com/op/view.as ...
- 前端网页预览word,pdf,excel等各类文档
项目中有需求要在网页上预览word文档,但是使用a标签的话只能预览图片一类的文件,对word只会下载文档不能预览 在网上查了很多资料,有些方法只能支持ie(使用ActiveXObject) 终于发现有 ...
- iOS 文件预览(PDF、Excel、World等)之QuickLook框架
iOS 文件预览 QuickLook之工程文件预览 QuickLook之网络URL预览 QuickLook之工程文件预览 一.简介 QuickLook库可以让我们的App在iPhone/iPad中直接 ...
- SAP SmartForms PDF Preview Test 打印预览生成PDF文件
SAP SmartForms PDF Preview Test 打印预览生成PDF文件 *&-------------------------------------------------- ...
- 支持预览html的解压软件,无须对文件解压 WinZIP可直接预览图片
图片缩略图预览 WinZip,一款老牌的压缩解压缩软件,凭借其超快的压缩速度和强大的压缩率,在用户心中留下了深刻的印象.不过,大家有可能还不知道,WinZip除了这些优势外,还有一个容易让大家忽略的功 ...
- 【Axure视频教程】预览时打开本地文件(播放视频、引用html、打开pdf…)
Hello,今天教大家如何在预览的时候通过内联框架打开本地文件,教程案例中包括了打开视频.html和pdf文件.学会后其实可以打开很多常用的文件,例如可视化统计图表.地图.模型等等,能在浏览器打开的文 ...
- python 在线预览文件_用Python PyQt写一个在线预览图片的GUI
在爬完网上一篇帖子,并得到其中的所有图片链接后,写一个GUI来实现在线预览是一个很自然的想法, 相当于实现一个python版的图片浏览器, 通过这个练习,可以让我们更熟悉PyQt这个库. 这里我用的是 ...
- JQ input 文件上传并预览 选择图片后,在页面上预览图片,页面渲染
有时候,我们更新界面信息时会遇到,选择图片后,并不能预览图片,必须提交数据库后才能在页面上显示出来,这样我们该怎样办呢? 起始jq为我们提供了两个方法change()和URL.createObject ...
最新文章
- Angular中父组件通过ViewChild调用子组件的方法
- 对于java反射的理解
- java.io.IOException: Too many open files
- mysql多实例复制,Mysql实例使用Rotate Master实现MySQL 多主复制的实现方法
- Ant Design Tabs标签页隐藏的标签内元素无法获取到
- pl sql代码提示手动提示设置
- 【opencv学习】单应性变换Homography
- 董明珠自媒体:格力口罩今日开售 上午预约下午抢购
- C专家编程 第1章 C:穿越时空的迷雾 1.1 C语言的史前阶段
- 毕业生签约时必须知道三件事:三方协议、干部身份、派遣证
- 阿里云短信服务(解决个人无法申请问题)
- 做php外包常用的框架
- centos7:configure: error: perl >= 5.7.3 with Encode and Data::Dumper required by Texinfo.
- 蓝桥杯——摔手机 动态规划
- 用html制作三角形九九乘法表,用js实现打印九九乘法表
- 田野调查手记·浮山摩崖石刻(十三)
- 帧间的SAD和SATD
- python京东抢购软件_福利来了,python 京东抢购茅台脚本(亲测可用)
- 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩
- 【C++】洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树
热门文章
- linux 进程 status,Linux 进程状态详解
- 分水果(冬季每日一题 21)
- 从RPA+AI到IPA,RPA是如何进化的?
- Jenkins一键发布「apkipa」 到Bugly
- 甜齁你的情人节糖果促销海报设计
- 淘宝双十一最新文案来袭
- 隐喻是什么?我们为什么需要它
- 巴比特 | 元宇宙每日必读:不再盲目迷信硬件掘金,大厂XR集体后撤,业内人士建议多条腿走路,生态和内容才有更广阔市场...
- Laravel 5.1 文档攻略 —— Eloquent:模型关系
- [Javascript学习笔记]JS变量不声明也能使用,直接天下无敌!