`
swingfly
  • 浏览: 52687 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Servlet在客户端显示word pdf ppt xls html(servlet send pdf,doc,ppt,xls and html to clie

    博客分类:
  • java
阅读更多
package  cn.terje.web;

 

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.regex.Pattern;

 

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/*

  * 针对不同的格式发送不同的文件格式到 client

  *

  * */

public class DocShowServlet extends HttpServlet

{

 

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)

           throws ServletException, IOException

    {

 

       String fN = req.getParameter( "fileName" );

       if (fN == null )

       {

           resp.sendError(404); // 出错了

 

       } else

       {

           String fileName = "F:\\DOC\\" + fN; // 资料存放在 E DOC 下,主要是在 WIN 平台下

 

           // 先判断文件类型,根据不同的文件类型选择不同的发送方式

           if (Pattern.matches ( ".+\\.(html)" , fN))

           {

              resp.setContentType( "text/html" );

              resp.setCharacterEncoding( "gb2312" );

              ServletOutputStream out = resp.getOutputStream();

 

              BufferedInputStream bis = new BufferedInputStream(

                     new FileInputStream( new File(fileName))); // 读取文件

 

              byte [] b = new byte [1024];

              int len;

              while ((len = bis.read(b)) != -1)

              {

                  out.write(b);

              }

 

              bis.close();

           }

           // 将 PDF 发送到 client

           if (Pattern.matches ( ".+\\.(pdf)" , fN))

           {

              resp.setContentType( "application/pdf" );

              resp.setCharacterEncoding( "gb2312" );

              ServletOutputStream out = resp.getOutputStream();

 

              BufferedInputStream bis = new BufferedInputStream(

                     new FileInputStream( new File(fileName)));

 

              byte [] b = new byte [1024];

              int len;

              while ((len = bis.read(b)) != -1)

              {

                  out.write(b);

              }

 

              bis.close();

           }

           // 发送 word 文档

           if (Pattern.matches ( ".+\\.(doc)" , fN))

           {

              resp.setContentType( "application/msword" );

              resp.setCharacterEncoding( "gb2312" );

              ServletOutputStream out = resp.getOutputStream();

 

              BufferedInputStream bis = new BufferedInputStream(

                     new FileInputStream( new File(fileName)));

 

              byte [] b = new byte [1024];

              int len;

              while ((len = bis.read(b)) != -1)

              {

                  out.write(b);

              }

 

              bis.close();

           }

           // 电子表格发送到 client

           if (Pattern.matches ( ".+\\.(xls)" , fN))

           {

              resp.setContentType( "application/vnd.ms-excel" );

              resp.setCharacterEncoding( "gb2312" );

              ServletOutputStream out = resp.getOutputStream();

 

              BufferedInputStream bis = new BufferedInputStream(

                     new FileInputStream( new File(fileName)));

 

              byte [] b = new byte [1024];

              int len;

              while ((len = bis.read(b)) != -1)

              {

                  out.write(b);

              }

 

              bis.close();

           }

           //PPT 发送到 client

           if (Pattern.matches ( ".+\\.(ppt)" , fN))

           {

              resp.setContentType( ">application/vnd.ms-powerpoint" );

              resp.setCharacterEncoding( "gb2312" );

              ServletOutputStream out = resp.getOutputStream();

 

              BufferedInputStream bis = new BufferedInputStream(

                     new FileInputStream( new File(fileName)));

 

              byte [] b = new byte [1024];

              int len;

              while ((len = bis.read(b)) != -1)

              {

                  out.write(b);

              }

 

              bis.close();

           }

 

       }

    }

 

}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics