湖南做网站,济南网站开发公司排名,wordpress 打赏实现,2013年以前pc网站建设一、背景
上篇文章介绍了图片的预览#xff0c;这篇我们介绍下 pdf 文件的预览#xff0c;pdf 预览在实际开发中用的还是比较多的#xff0c;比如很多文件协议、合同都是用pdf 格式#xff0c;协议预览就需要我们做 pdf 预览了。 二、实操
其实在上篇文章最后已经说了常用…一、背景
上篇文章介绍了图片的预览这篇我们介绍下 pdf 文件的预览pdf 预览在实际开发中用的还是比较多的比如很多文件协议、合同都是用pdf 格式协议预览就需要我们做 pdf 预览了。 二、实操
其实在上篇文章最后已经说了常用 content-type 字段其中的 application/pdf 就是我们的重点话不多说看代码
package top.lovelily.pdf;import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;public class PdfServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.创建字节输入流关联读取的文件// 1.1 获取文件的绝对路径//String realPath getServletContext().getRealPath(pdf/mesi.pdf);String realPath C:\\Users\\xxx\\Desktop\\pdf\\memory-barriers.pdf;// 1.2 创建字节输出流对象BufferedInputStream bis new BufferedInputStream(new FileInputStream(realPath));//2.设置响应头支持的类型 应用支持的类型为字节流/*Content-Type 消息头名称 支持的类型application/pdf 消息头参数 应用类型为图片*/// resp.setHeader( Content-Type, application/pdf);// 当 header 的 key 是 Content-Type 可以使用 resp.setContentType 方法resp.setContentType(application/pdf); // pdf格式//3.获取字节输出流对象ServletOutputStream sos resp.getOutputStream();//4.循环读写文件byte[] arr new byte[1024];int len;while((len bis.read(arr)) ! -1) {sos.write(arr,0,len);}//6.释放资源bis.close();}
}
三、验证 大家注意看右上角下载按钮也有了这个是浏览器的功劳所以一旦我们做了文件预览功能下载功能就自动生成了是不是特别棒~