网上好多资料都说可以通过
ServletOutputStream out = res.getOutputStream();
并且设置
// MIME type for pdf doc
response.setContentType( "application/pdf" );
或
// MIME type for MSWord doc
response.setContentType( "application/msword" );
或
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");
我的代码如下
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = getServletConfig().getServletContext();
//测试文件test.xls ,text.doc
File f = new File("D:\\test.pdf");
String filename = f.getName();
int length = 0;
ServletOutputStream op = response.getOutputStream();
response.setContentLength((int) f.length());
//response.setContentType( "application/msword" );
// response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-type","application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
byte[] bytes = new byte[1024];
DataInputStream in = new DataInputStream(new FileInputStream(f));
while ((in != null) && ((length = in.read(bytes)) != -1)) {
op.write(bytes, 0, length);
}
op.close();
response.flushBuffer();
}
}
只有PDF,Txt,Html 可以嵌入到网页中打开,Excel,Word为什么不能嵌入到网页中打开,
网上好多人都说这样可以,为什么我这里打不开呢!
我想嵌入到网页中打开,为什么不可以呢!
还有其它的设置吗?
各位大侠显身啊
设置在浏览器中打开,使用的是Http协议Header中的inline属性。
先看看是不是浏览器设置的问题。
是不是曾经在下载doc或者xls时,点击了“保存”而不是“打开”,并且选中了那个选项框。
(IE)
工具 --- Internet选项 --- 安全 --- 将所有区域重置为默认等级
您可以换个浏览器试试。FireFox
你列出的代码其实是用于文件下载的。。只不是是设置了inline的。。
那么当浏览器支持的时候,就会使用浏览器来打开,而不是直接下载。。
那么,,Excel,Word当然就无法在浏览器中直接打开了。
在线打开excel,word等office文件,个人觉得PageOffice插件就很不错,代码简单好使