想在浏览器里直接GET目标URL,然后就把PDF在浏览器里预览出来(不用前端插件的前提下),就像这样:

http://docs.spring.io/spring/…

后端代码:

@RequestMapping(value = "/showPDF", method = RequestMethod.GET)

public ResponseEntity<byte[]> pdfDownload(

HttpServletRequest httpServletRequest

) throws IOException

{

String path = XXX省略。。。

File file = new File(path);

HttpHeaders httpHeaders = new HttpHeaders();

String fileName = file.getName();

httpHeaders.setContentDispositionFormData("attachment",            java.net.URLEncoder.encode(fileName,"UTF-8"));

httpHeaders.setContentType(MediaType.parseMediaType("application/pdf"));

return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),

httpHeaders,

HttpStatus.CREATED);

}

然后想在前端直接GET这个URL地址:

http://localhost:8080/FileUpDown/showPDF

但是却成了下载文件而不是预览了。。。

这是chrome的输出:

**Response Headers**

*view source

Content-Disposition:form-data; name="attachment"; filename="1472111731322JavaScript%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97.pdf"

Content-Length:21962427

Content-Type:application/octet-stream;charset=UTF-8

Date:Thu, 25 Aug 2016 08:32:56 GMT

Server:Apache-Coyote/1.1*

Conrent-Type明显不对,请问该如何解决?

谢谢诸位的回答,这是我的解决方案。

1,在web路径下建立一个uploadFiles文件夹。

2,在springMVC里映射PDF文件就像映射静态文件那样。

<mvc:resources mapping="/pdf/**" location="/uploadFiles/"/>

3,写个controller返回PDF的URL路径。

@Controller

@CrossOrigin(origins = "*")

public class PDFController {

@ResponseBody

@RequestMapping(value = "/pdf", method = RequestMethod.GET)

public String pdfDownload() throws IOException

{

String retString = null;

String dir = XXXX文件在服务器中路径。

String path = httpServletRequest.getRequestURL() + dir.substring(dir.lastIndexOf('\'));

retString = path.replaceAll("\\\","/");

Map<String,Object >map = new HashMap<>();

map.put("code",0);

map.put("pdf",retString);

return JSON.toJSONString(map);

}

}

4,返回的JSON数据。

{"code":0,"pdf":"http://127.0.0.1:8080/pdf/1472128890165sample.pdf"}

5,浏览器中直接打开pdf这个url就可以预览PDF啦。

直接将pdf文件放在服务器上一个静态目录下,将地址重定向到该文件路径,浏览器会自动打开预览的;可以参照浏览器中直接输入本地磁盘下一个pdf文件全路径试试,浏览器也是自动打开预览的

就像访问静态文件那样做咯,你的js文件怎么放,pdf怎么放。

你去看响应部分,响应前面有一些东西,应该是那里导致预览的

把RequestMapping那行改成试试:

@RequestMapping(value = "/showPDF", method = RequestMethod.GET, produces = MediaType.APPLICATION_PDF_VALUE)

java返回浏览器预览PDF_如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览?...相关推荐

  1. java返回pdf文件流给前端_如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览?...

    想在浏览器里直接GET目标URL,然后就把PDF在浏览器里预览出来(不用前端插件的前提下),就像这样: 后端代码: @RequestMapping(value = "/showPDF&quo ...

  2. 前端接收pdf文件_如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览

    展开全部 1,在web路径下建立一个uploadFiles文件636f707962616964757a686964616f31333361316561夹. 2,在springMVC里映射PDF文件就像 ...

  3. java生成不可修改的pdf_好記性不如爛筆頭4-JAVA生成PDF文件

    使用iText JAR生成PDF 在很多的場合,需要使用PDF文件,有時候也要設置PDF文件的表格和文字等. 如果讓一個PDF工具類非常靈活,那么這個工具類就會很復雜:一般根據實際情況,寫幾個合適的工 ...

  4. Java后台实现pdf文件在浏览器中预览

    Java后台实现pdf文件在浏览器中预览 放在服务器的pdf文件不能通过完整路径访问,想要实现的效果是浏览器访问后台接口可以预览pdf文件,暂时是把pdf文件放在本地测试 通过输出流的方式将pdf文件 ...

  5. 前端实现pdf文件的在线预览与下载

    前言 在项目中我们经常会出现各种各样的法律文件.免责说明等文件需要用户阅读,很多文件除了阅读外还要支持用户下载.为了快速开发,一些变动不大的文件,或者是项目中不想开发富文本的时候我们可以选择直接使用p ...

  6. 前后端分离情况下pdf文件在浏览器中预览的实现

    在浏览器上直接打开pdf文件,页面标题与文件不符,经如下处理,问题得到解决: 1.Vue文件发送请求 window.open(HOST + '/file/preview/' + this.userId ...

  7. html做在线预览pdf文件,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...

  8. php+预览和下载pdf文件,vue实现在线预览pdf文件和下载(pdf.js)

    最近做项目遇到在线预览和下载pdf文件,试了多种pdf插件,例如jquery.media.js(ie无法直接浏览) 最后选择了pdf.js插件(兼容ie10及以上.谷歌.安卓,苹果) 强烈推荐改插件, ...

  9. 文献管理软件//Zotero的常用插件——Sci-hub/shortdoi批量下载、Zotfile重命名PDF文件及ZoteroQuickLook快速预览(二)

    Zotero|方便好用的插件 一. Zotfile|文件重命名 1.1 Zotfile下载 1.2 Zotfile安装 1.3 Zotfile配置 1.4 Zotfile重命名文件 二. QuickL ...

最新文章

  1. 如何删除Cookie?
  2. 视频云的全景蓝图,想象力的允诺之地
  3. 学完计算机的感想300,计算机实训总结计算机实训心得300
  4. npm ERR! command failednpm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild
  5. 深度图像配准_【阅读笔记】深度学习在医学图像分析领域的综述
  6. Node.js视频教程
  7. 向量数量积公式_向量的数量积公式大全
  8. windows电脑桌面透明便签待办分类怎么添加
  9. 数据分析师为什么能拿高薪
  10. 前端正则表达式指定邮箱域名匹配
  11. 计算机网络二分法划分网络,三种经典复杂网络社区结构划分算法研究_GN算法
  12. 了解眩光与星芒,夜景灯光拍摄翻倍美
  13. 国王将金币作为工资,发放给忠诚的骑士。
  14. usleep java_sleep()和usleep()的使用和区别
  15. 分享8个前端可以制作360度WebVr全景视图框架
  16. SpringBoot整合Mybatis(配置文件)
  17. control的用法及短语_有关control的短语
  18. c语言程序设计杨毅版,C语言程序设计
  19. 读《微波工程(第三版)》笔记 (4:波方程和基本平面波的解)
  20. 2021年5月:百度最近的文章收录变慢了?连老站都不好使了?

热门文章

  1. Epub阅读器合集,建议收藏
  2. iocp端口断开_iocp 关闭 | 学步园
  3. zabbix系列:修改默认的snmp端口161
  4. MySQL中间件Atlas
  5. Python turtle 绘制彩色螺旋线
  6. 区块链在版权保护上有什么作用?
  7. CloudCompare编译las
  8. 课堂笔记2016.8.1
  9. 【2022.7.11】HTML基础介绍语法常用标签超文本链接锚点定位
  10. Linux 挂载远程目录