通过java controller将pdf下载到web系统中

package com.example.getorder.Controller;import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import sun.misc.BASE64Decoder;import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;@Controller
@RequestMapping("text")
public class TestController {@ResponseBody@RequestMapping("test")public String getStream(String uri,HttpServletRequest request) {try {String savePath=  downLoadFromUrl(request,uri);return savePath;}catch (Exception e){e.printStackTrace();}return "";}/*** 从网络Url中下载文件* @param urlStr* @throws IOException*/public static String  downLoadFromUrl(HttpServletRequest request, String urlStr) throws IOException{URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection)url.openConnection();//设置超时间为3秒conn.setConnectTimeout(3*1000);//防止屏蔽程序抓取而返回403错误conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//得到输入流InputStream inputStream = conn.getInputStream();//获取自己数组byte[] getData = readInputStream(inputStream);String basePath="/WEB-INF/pdfjs/web";String path = request.getSession().getServletContext().getRealPath(basePath);// String savePath=TestController.class.getClassLoader().getResource("").getPath();//文件保存位置File saveDir = new File(path);if(!saveDir.exists()){saveDir.mkdir();}File file = new File(saveDir+File.separator+"dingdan.pdf");FileOutputStream fos = new FileOutputStream(file);fos.write(getData);if(fos!=null){fos.close();}if(inputStream!=null){inputStream.close();}return path+"dingdan.pdf";//   System.out.println("info:"+url+" download success");}/*** 从输入流中获取字节数组* @param inputStream* @return* @throws IOException*/public static  byte[] readInputStream(InputStream inputStream) throws IOException {byte[] buffer = new byte[1024];int len = 0;ByteArrayOutputStream bos = new ByteArrayOutputStream();while((len = inputStream.read(buffer)) != -1) {bos.write(buffer, 0, len);}bos.close();return bos.toByteArray();}}
再用pdf.js将下载到本地的pdf文件打开 。用
<a href="#" οnclick="window.open('<%=basePath%>pdfjs/web/viewer.html?file=/pdfjs/web/dingdan.pdf','PDF','width:50%;height:50%;top:100;left:100;');">查看pdf</a> 即可

通过pdf的url在线浏览pdf相关推荐

  1. 前端使用pdf.js插件在线浏览pdf

    vue中使用PDF.js_没理由的花呗的博客-CSDN博客_pdf.js vue 步骤 1.官网下载pdf.js插件放入一个公用方法文件夹中如utils 2.在需要使用的页面使用iframe标签 &l ...

  2. 微信公众号或者浏览器实现在线浏览pdf文件

    微信公众号或者浏览器实现在线浏览pdf文件 实现在线浏览pdf文件方法 开发步骤: 实现在线浏览pdf文件方法 我们在日常的开发当中经常需要实现pdf文件的显示,最近做了一个在微信公众号中实现pdf浏 ...

  3. 网站开发之ie下在线浏览pdf文件无需本地支持

    1.首先,务必通过后面给的链接了解一些可实现的方法:打开链接. 2.个人选择了PDFObject+PDF.js来实现,这里需要下载pdfobject.js和PDF.js.对于pdfobject.js, ...

  4. IE上在线浏览PDF

    工作中遇到在IE中,在线显示PDF的需求,项目采用的是SpringMvc. 这里有二种情况,一是在jsp中显示pdf,还有一种就是html中显示PDF.运用所遇到的问题是在html中显示PDF,针对I ...

  5. Word转PDF及SWF在线浏览——Flash Paper

    http://flexpaper.devaldi.com/?ref=FlexPaper 之前在项目中研究使用了一套word转PDF,然后将PDF转成SWF的方法,最终实现SWF的在线浏览.自己还有些洋 ...

  6. PDF文档在线浏览防下载加密方案

    PDF文档在线浏览防下载加密方案 (在线浏览防下载,文件不落地.禁止打印.禁止另存.禁止文字复制.动态添加防截图水印) 本方案针对PDF文档在线浏览的版权保护. 其突出特点表现在: 在线浏览防下载,文 ...

  7. 8个实现在线浏览PDF文件的实用jQuery插件

    在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题往往是费时又 ...

  8. 如何破解PDF文件密码(在线破解PDF密码)

    如何破解PDF文件密码(在线破解PDF密码) fcwgw.5d6d.com 整理:凌空飞度社区 每当毕业临近的时候,毕业生都会忙着写论文,每逢此时,Adobe Reader就是最忙的了,但是有时候遇到 ...

  9. pdf.js 在线浏览pdf组件构建与安装注意事项

    为什么80%的码农都做不了架构师?>>>    1.简介 PDF.js 是基于开放的 HTML5 及 JavaScript 技术实现的开源产品. pdf.js 是一个主要用于HTML ...

最新文章

  1. REM——适合移动开发的自适应方案
  2. STM32的调试方式、更新程序、仿真以及补救措施
  3. OO实现ALV TABLE 十:ALV的页眉页脚
  4. mysql128位整数_mysql的数据类型
  5. linux内核镜像解压,解压内核镜像
  6. 【转】什么是staging server
  7. html设计动画小黄人,CSS3实现可爱的小黄人动画
  8. 数据结构与算法:企业级链表实现(超详细)
  9. 解决js array的key不为数字时获取长度的问题
  10. php简介的编辑器,推荐几款功能强大的PHP编辑器
  11. linux系统yum提示注册,Linux:redhat6.5使用yum时提示需要注册问题解决方案
  12. ATN项目(智能矩阵Atmatrix)是否能做到人工智能界的桥梁,从而改变世界?
  13. 计算机图形学---纹理及纹理隐射
  14. 期货交易结算信息(期货结算系统)
  15. 首席新媒体黎想教程:活动形式和用户吸引逻辑!
  16. 漂流瓶php源码,微信小程序之仿微信漂流瓶
  17. unknown filesystem解决方案
  18. IT及计算机相关网站 列表
  19. mysql中何时需要引号,何时在MySQL中使用单引号,双引号和反勾号
  20. 求含有阶乘的不等式c语言,证明含有双阶乘的不等式

热门文章

  1. erlang与rabbitmq下载(Window)
  2. systemd 服务使用
  3. 几周以来在学习和生活中的总结
  4. 二氧化硅纳米微球光子晶体乳液聚合聚苯乙烯核壳结构/中空二氧化硅/钛纳米微球的制备方法
  5. Linux文件系统管理-常用命令df\du\fsck\dumpe2fs
  6. Axure绘制左侧菜单
  7. 进阶篇:2)DFMA方法的运用
  8. 直击六大会场 | 洞察100+创新实践,2018TOP100summit圆满落幕!
  9. 请简述独占设备的分配过程。
  10. 论文阅读-MLPD:Multi-Label Pedestrian Detector in Multispectral Domain(海康威视研究院实习项目)