文件下载直接返回流即可,

但是如果返回图片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

.pdf

application/pdf

.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等文件相关推荐

  1. 文件在线预览 图片 PDF Excel Word

    1.前端实现pdf文件在线预览功能 方式一.pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面.在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签href属性实现预览 <ah ...

  2. php 在线预览word pdf等文件

    直接上代码 <td class='text-left nowrap'><a href="http://view.officeapps.live.com/op/view.as ...

  3. 前端网页预览word,pdf,excel等各类文档

    项目中有需求要在网页上预览word文档,但是使用a标签的话只能预览图片一类的文件,对word只会下载文档不能预览 在网上查了很多资料,有些方法只能支持ie(使用ActiveXObject) 终于发现有 ...

  4. iOS 文件预览(PDF、Excel、World等)之QuickLook框架

    iOS 文件预览 QuickLook之工程文件预览 QuickLook之网络URL预览 QuickLook之工程文件预览 一.简介 QuickLook库可以让我们的App在iPhone/iPad中直接 ...

  5. SAP SmartForms PDF Preview Test 打印预览生成PDF文件

    SAP SmartForms PDF Preview Test 打印预览生成PDF文件 *&-------------------------------------------------- ...

  6. 支持预览html的解压软件,无须对文件解压 WinZIP可直接预览图片

    图片缩略图预览 WinZip,一款老牌的压缩解压缩软件,凭借其超快的压缩速度和强大的压缩率,在用户心中留下了深刻的印象.不过,大家有可能还不知道,WinZip除了这些优势外,还有一个容易让大家忽略的功 ...

  7. 【Axure视频教程】预览时打开本地文件(播放视频、引用html、打开pdf…)

    Hello,今天教大家如何在预览的时候通过内联框架打开本地文件,教程案例中包括了打开视频.html和pdf文件.学会后其实可以打开很多常用的文件,例如可视化统计图表.地图.模型等等,能在浏览器打开的文 ...

  8. python 在线预览文件_用Python PyQt写一个在线预览图片的GUI

    在爬完网上一篇帖子,并得到其中的所有图片链接后,写一个GUI来实现在线预览是一个很自然的想法, 相当于实现一个python版的图片浏览器, 通过这个练习,可以让我们更熟悉PyQt这个库. 这里我用的是 ...

  9. JQ input 文件上传并预览 选择图片后,在页面上预览图片,页面渲染

    有时候,我们更新界面信息时会遇到,选择图片后,并不能预览图片,必须提交数据库后才能在页面上显示出来,这样我们该怎样办呢? 起始jq为我们提供了两个方法change()和URL.createObject ...

最新文章

  1. Angular中父组件通过ViewChild调用子组件的方法
  2. 对于java反射的理解
  3. java.io.IOException: Too many open files
  4. mysql多实例复制,Mysql实例使用Rotate Master实现MySQL 多主复制的实现方法
  5. Ant Design Tabs标签页隐藏的标签内元素无法获取到
  6. pl sql代码提示手动提示设置
  7. 【opencv学习】单应性变换Homography
  8. 董明珠自媒体:格力口罩今日开售 上午预约下午抢购
  9. C专家编程 第1章 C:穿越时空的迷雾 1.1 C语言的史前阶段
  10. 毕业生签约时必须知道三件事:三方协议、干部身份、派遣证
  11. 阿里云短信服务(解决个人无法申请问题)
  12. 做php外包常用的框架
  13. centos7:configure: error: perl >= 5.7.3 with Encode and Data::Dumper required by Texinfo.
  14. 蓝桥杯——摔手机 动态规划
  15. 用html制作三角形九九乘法表,用js实现打印九九乘法表
  16. 田野调查手记·浮山摩崖石刻(十三)
  17. 帧间的SAD和SATD
  18. python京东抢购软件_福利来了,python 京东抢购茅台脚本(亲测可用)
  19. 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩
  20. 【C++】洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树

热门文章

  1. linux 进程 status,Linux 进程状态详解
  2. 分水果(冬季每日一题 21)
  3. 从RPA+AI到IPA,RPA是如何进化的?
  4. Jenkins一键发布「apkipa」 到Bugly
  5. 甜齁你的情人节糖果促销海报设计
  6. 淘宝双十一最新文案来袭
  7. 隐喻是什么?我们为什么需要它
  8. 巴比特 | 元宇宙每日必读:不再盲目迷信硬件掘金,大厂XR集体后撤,业内人士建议多条腿走路,生态和内容才有更广阔市场...
  9. Laravel 5.1 文档攻略 —— Eloquent:模型关系
  10. [Javascript学习笔记]JS变量不声明也能使用,直接天下无敌!