<a href="http://192.168.2.106:8080/file/pp.pdf">打开文件</a>通过这种方式可以打开,但却显示在整个页面中,如何调用本地的pdf程序打开呢?

解决方案 »

  1.   

    打开调用的就是本地的 pdf程序  本地没安装阅读pdf的程序是无法看服务器的pdf文件的
      

  2.   

    PDF文件的MIME类型是"application/pdf "。要用servlet来打开一个PDF文档,需要将response对象中header的contentType类型设置成"application/pdf ":
    Microsoft Word文档,你就要将response对象的content类型设置成"application/msword ":
    你只要将文件写到servlet的输出流中,就可以利用servlet在浏览器中打开一个文件。
    首先从获得servlet的输出流开始:ServletOutputStream out= response.getOutputStream();
    respost.setContentType("application/pdf ");
    respose.setHeader( "Content-disposition", "attachment;filename=" +"pp.pdf");//别人下载时的文件名。完成上述工作后,剩下的就非常简单了。你需要根据待传送文件的名字,创建一个   java.net.URL   对象。交给   URL   构造器的字符串必须是指向该文件的一个有效   URL   地址。如:  String fileURL = "http://192.168.2.106:8080/file/pp.pdf";
      URL url = new URL(fileURL);
      //*********************************************************
      //如果需要通过防火墙,要考虑URL   链接
      //*********************************************************
      BufferedInputStream   bis   =   new   BufferedInputStream(url.openStream());
      //完成上述操作,就只要简单地将   InputStream   中的字节,写入到   servlet   的输出流   OutputStream   中:
      BufferedOutputStream   bos   =   new BufferedOutputStream(response.getOutputStream());
      byte[]   buff   = new byte[2048];
      int bytesRead;
    //     Simple   read/write   loop.
      while(-1   !=  (bytesRead = bis.read(buff,0,buff.length))){
      bos.write(buff,   0,   bytesRead);
      }