Servlet学习笔记---上传各种文件

来源:互联网 发布:考勤系统设计sql 编辑:程序博客网 时间:2024/06/01 07:12

response.setContentType("application/pdf");表示给客户端传送pdf类型的文件。

若是不设置,则默认类型为 “text/plain" 即纯文本类型

若是要返回一个Microsoft  Word类型的文档,则将其设置为”application/msword" 。

若是要返回一个Excel类型的文档,则将其设置为”application/vnd.ms-excel" 。


这里以pdf类型为例。

import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class PdfServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        response.setContentType("application/pdf");        ServletOutputStream out=response.getOutputStream();                File file=new File("G:/1.pdf");        FileInputStream is=new FileInputStream(file);        byte[]b=new byte[1024];                int len=0;        while((len=is.read(b))>0)        {        out.write(b, 0, len);        }                }public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
大体步骤:

1.设置类型

2.将文件转为文件输入流。

3.用ServletOutputStream 输出。


这里的浏览器若是有解析pdf类型文件的插件,则可以保存或者下载。

但若是浏览器没有对应的解析pdf的插件,既无法查看又无法下载。

为了解决这一问题:只需要在开始getOutputStream()一行下面,添加一句话:

 response.setHeader("Content-disposition","attachment;filename=Servlet好厉害.pdf");

这样,即使没有响应的插件,也会下载   Servlet好厉害.pdf  对应的文件(实际上就是你在G盘读取的1.pdf)




0 0