zoukankan      html  css  js  c++  java
  • jsp 页面根据路径直接打开.pdf 文件

    <%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%>

      导入java.io.*  

    String   aa=request.getparameter("url");//直接打开pdf

    out.clear();

    out=pageContext.pushBody():

    response.setContentType("application/pdf");

    try{

      String strpdfPath=new String(aa);

      File file=new File(strpdfPath);

      if(file.exists()){

        DataOutputStream temps=new DataOutputStream(response.getOutputStream());

        DataInputStream in=new DataInputStream(new FileInputStream(strpdfPath));

        byte[]  b=new byte[2048];

        while((in.read(b))!=-1){

          temps.write(b);

          temps.flush();

        }

        in.close();

        temps.close();

      }else{

          out.print(strpdfPath+"文件不存在");

        }

    }catch(Exception e){

      out.print(e.getMessage());

    }

    else{  //暂无法直接打开word  ,,弹出另存为对话框
    try {
      String fileName =aa;

      System.out.println("=====" + fileName);

      File wordFile = new File(fileName);

      response.reset();
      response.setContentType("application/vnd.msword");
      response.setHeader("Content-Disposition ",
      "inline; filename= " + wordFile.getName());
      InputStream is = new FileInputStream(wordFile);

      OutputStream os = response.getOutputStream();

      int byteread;
      byte[] buffer = new byte[1024];

      while ((byteread = is.read(buffer)) != -1) {
      os.write(buffer, 0, byteread);
    }

      os.flush();
      os.close();
      out.clear();  ///加入这两句  ,  避免getOutputStream  已经调用的页面的报错

      out = pageContext.pushBody();///


      } catch (Exception e) {
        e.printStackTrace();
    }
    }

    pdf  在不同的浏览器 能直接打开 ,但是在火狐有乱码的问题, 在谷歌浏览器在打开word  时总是弹出另存为对话框  , 其他浏览器可能会弹出直接打开,下载,取消对话框  ,,

  • 相关阅读:
    通配符
    Hibernate入门简介
    Java的参数传递是值传递?
    Java线程详解
    java基础总结
    谈谈对Spring IOC的理解
    Oracle SQL语句之常见优化方法总结--不定更新
    JVM 工作原理和流程
    Java中的String为什么是不可变的? -- String源码分析
    Spring AOP 简介
  • 原文地址:https://www.cnblogs.com/zhangchenglzhao/p/3013678.html
Copyright © 2011-2022 走看看