• java 实现在线阅读 .pdf


    1.资源的本地地址

    2.设置响应头

    3.代码实现

     1 @ResponseBody
     2     @RequestMapping(value = "/read")
     3     @ApiOperation(value="阅读", httpMethod = "GET", notes = "阅读")
     4     public String read(@ApiParam(required = true, name="id", value="")@RequestParam(value="id", required=true)String id,
     5                        HttpServletRequest request,HttpServletResponse response) throws IOException {
     6         PeriodicalResource periodicalResource = periodicalResourceService.get(id);
     7         String filePath = periodicalResource.getAttachment();
     8         File file = new File(periodicalBaseDir + filePath);//本地资源位置
     9         if (file.exists()) {
    10             response.setContentType("text/html; charset=UTF-8");//文本&编码
    11             response.setContentType("application/pdf");//pdf
    12             byte[] buffer = new byte[16*1024];
    13             FileInputStream fis = null;
    14             BufferedInputStream bis = null;
    15             try {
    16                 fis = new FileInputStream(file);
    17                 bis = new BufferedInputStream(fis);
    18                 OutputStream os = response.getOutputStream();
    19                 int i = bis.read(buffer);
    20                 while (i != -1) {
    21                     os.write(buffer, 0, i);
    22                     i = bis.read(buffer);
    23                 }
    24             } catch (Exception e) {
    25                 e.printStackTrace();
    26             } finally {
    27                 if (bis != null) {
    28                     try {
    29                         bis.close();
    30                     } catch (IOException e) {
    31                         e.printStackTrace();
    32                     }
    33                 }
    34                 if (fis != null) {
    35                     try {
    36                         fis.close();
    37                     } catch (IOException e) {
    38                         e.printStackTrace();
    39                     }
    40                 }
    41             }
    42         }
    43         return null;
    44     }

    4.总结一下经验 记录一下实现过程

    虽然实现但是自己还是很懵逼 ,主要涉及的技术有 IO流,File 文件 两大技术

      在学校时 ,总感觉自己萌萌哒 ,结果工作之后自己咻咻咻 ,还要学习的东西很多啦

    希望自己的建议可以帮助各位道友    加油     一直在路上

  • 相关阅读:
    解题报告 百进制数
    解题报告 Loongint 的夜晚
    解题报告 树形图计数
    解题报告 一元三次方程求解
    解题报告 Loongint 的旅行安排
    解题报告 数字查找
    用C++编写简单绘图语言的词法分析器——程序清单
    C++ 连接 mysql 的一个例子(Visual Studio 2005)
    fedora 8 下JDK 6.0 配置
    IBM DB2 V9 常用命令
  • 原文地址:https://www.cnblogs.com/zhukaixin/p/9151171.html
Copyright © 2020-2023  润新知