JAVA代码是在SpringMVC框架写的

项目里用过 现在整理下发出来

代码包括java部分和页面jsp部分

一、JAVA

package com.leimingtech.platform.controller;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.jeecgframework.core.common.controller.BaseController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/*** @author  :linjm* @version :2014-11-26下午09:18:18*  description :**/
@Controller
@RequestMapping("PreviewApabiController")
public class PreviewApabiController extends BaseController {@RequestMapping(params = "preview")public void preview(HttpServletRequest request, HttpServletResponse respone) throws Exception{request.setCharacterEncoding("UTF-8");//编码设置String path = request.getParameter("uri");//文件路径获取File file = new File(request.getRealPath("/")+path);//获取文件绝对路径if(!file.exists()) return;String fileName = path.substring(path.lastIndexOf("/")+1);//设置响应头respone.reset();respone.setHeader("Content-type", "application/x-cedx");respone.setContentType("application/x-msdownload");//对中文文件名进行编码 respone.addHeader("Content-Disposition", "filename=\""+new String(fileName.getBytes("gb2312"),"iso-8859-1"+"\""));BufferedInputStream bis = null;BufferedOutputStream bos = null;bis = new BufferedInputStream(new FileInputStream(file));//文件流bos = new BufferedOutputStream(respone.getOutputStream());byte[] buff = new byte[2048];int line;while((line = bis.read(buff, 0, buff.length)) != -1){bos.write(buff,0,line);}//关闭bis.close();bos.flush();bos.close();respone.flushBuffer();}}

二、JPS

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" uri="/easyui-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%>
<%
String ctx = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+ctx;
%>
<c:set var="webRoot" value="<%=basePath%>" />
<!DOCTYPE html>
<html>
<head>
<script src="media/js/jquery-1.7.0.min.js" type="text/javascript"></script>
<script type="text/javascript">function show() {var url = "${webRoot}/PreviewApabiController.do?preview&uri=upload/test.cebx";$("#cebIframe").attr("src", url);//通过iframe打开}</script>
</head>
<body>
<input οnclick="show();" type="button" value="显示">
<iframe id="cebIframe" src="" width="100%" height="80%"></iframe>
</body>
</html>

原理很简单就是 浏览器调用你电脑上的软件资源打开文件

注意:打开word,pdf,ceb等文件 在没有获得插件或软件支持方提供的API 只能自己去这样写

如果你有 插件(如点聚)或厂方提供的API  是不需要这样弄的

首先你的电脑上必须装有方正的 apabiReader 就是类似PDF阅读器的软件

有一个方正的 .cebx 或 .ceb 后缀名的文件 用鼠标拖到浏览器里打开成功了就可使用下面的方法了

PDF也试过可以打开

只需修改这些地方

例如PDF:

respone.setHeader("Content-type", "application/pdf"); // 这里这里把application/x-cedx修改成application/pdf
respone.setContentType("application/x-msdownload");

word 等其它的类型板式文件 自己去试吧

类型可到tomgcat 下conf 的web.xml找到 或者百度也可以找到

<mime-mapping><extension>pdf</extension><mime-type>application/pdf</mime-type>
</mime-mapping>

浏览器内置打开方正CEB是文件进行阅读相关推荐

  1. Selenium Webdriver 的使用java执行js代码 解决 ScriptEngine不支持浏览器内置对象window,document的问题

    问题场景: 使用java 掉用js代码,发现 ScriptEngine不支持浏览器内置对象window,document的问题: 问题一:为什么要 用java掉用js代码? 比如在 抓取(爬取)对方网 ...

  2. 玩转代码|解决Chrome浏览器内置谷歌翻译功能无法使用问题!

    最近这几天在使用Chrome浏览器的内置谷歌翻译功能时,总是一直停留在不翻译的状态,一开始我还以为是网络波动过几天就好了,过了好几天依旧是这样.去看了新闻才知道谷歌翻译已经退出了中国市场. 根据Tec ...

  3. 内置host_浏览器内置对象应用实践

    " 浏览器内置对象,我们每天都与其打交道,可能你并未全面的去了解过它.我们一起讨论下你有过哪些实践." 1. 什么是浏览器对象模型?(BOM :Browser Object Mod ...

  4. 微软游戏服务器断网,微软大规模更新了Edge浏览器内置的断网小游戏

    真正做到"无网冲浪". 先告诉大家一个冷知识:微软的Edge浏览器在断网的时候也可以冲浪. 我指的是浏览器内置的"断网小游戏". 去年,微软Edge浏览器在一次 ...

  5. 主流浏览器内置http抓包工具使用

    1.1  谷歌浏览器内置抓包工具 谷歌浏览器 chrome自带的 http 抓包工具界面简洁大方,功能也很强大,唯一的不足就是界面是英文的. 打开方式一:点击右上角的菜单-->更多工具--> ...

  6. js禁止苹果页面底部滚动_Vue.js 实现禁止 h5 页面在 ios 浏览器内置的下拉 bounce 效果...

    介绍 vue-disbounce是一款基于Vue.js的自定义组件,可以有效避免触发h5页面在ios浏览器内置的下拉bounce效果. 组件 :style="{'background-col ...

  7. js浏览器内置对象和js内置对象

    浏览器内置 1.Location 对象 hash :返回一个URL的锚部分 host 返回一个URL的主机名和端口 hostname 返回URL的主机名 href 返回完整的URL pathname ...

  8. Flash正式成为Googel Chrome浏览器内置插件

    3月30日,Google Chrome浏览器官方博客宣布Flash正式成为Google Chrome浏览器内置插件.从此,Flash将随同Google Chrome的版本同时发布,并且附带自动更新功能 ...

  9. 坐标正反算(含高程),把要素内置化(无需改程序文件,即可更换路线,同时存两条线要素

    tuzhyu 功能: 坐标正反算(含高程),把要素内置化(无需改程序文件,即可更换路线,同时存两条线要素) 另含两个边仰(一个横向坡,一个纵向坡)坡放样模块. 帮助文件未完成 程序浏览: FileNa ...

  10. html5网页自动下滑,HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码...

    H5手指下滑弹出负一屏, 阻止移动端浏览器内置下拉刷新功能,具体实例代码如下所示: 默认隐藏,负一屏,手指下滑即可弹出显示,上滑隐藏 正式内容 import $ from 'jquery'; expo ...

最新文章

  1. 如何在OS X中打印到PDF文件
  2. /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
  3. Frida 基础操作2
  4. service层中有某个事物要立马提交_硬货你要的,binder机制来了
  5. 查找出系统中大于50k 且小于100k 的文件并删除。
  6. php 获得汉字拼音首字母的函数,php 获得汉字拼音首字母的函数
  7. C语言之一些值得被定义为常用C语言头文件库的漂亮宏定义
  8. Spring事务管理(二)-TransactionProxyFactoryBean原理
  9. 萌新的Python练习菜鸟100例(十八)求s=a+aa+aaa+aaaa+aa...a的值
  10. 手把手编写自己的PHP MVC框架实例教程
  11. selenium 区域截图
  12. 【APP加载H5页面加载流程概述及提速方案】
  13. 为git配置kdiff3,生效gitk
  14. idea xml高亮问题
  15. php 根据ip 扫描端口,域名端口扫描-在线端口检测开放检查-IP端口批量扫描在线工具...
  16. Scientists say Australian plan to cull up to 10,000 wild horses doesn’t go far enough
  17. height:unset在IE上无效
  18. DQN 强化学习 (Reinforcement Learning)
  19. Python运行时,提示SyntaxError: invalid syntax怎么解决
  20. 【CF891E】Lust 生成函数

热门文章

  1. c++初学,计算立方体的体积和面积,并比较两个立方体是否相同:
  2. Visio2007注册码(产品密匙)
  3. 解决QQ聊天自动转成表情
  4. javweb音乐网站_基于javaweb音乐网站设计与实现
  5. ubuntu16 install sogou input
  6. 教材寻找 下载系列1
  7. windows工具:推荐一款可以截长图(滚动截图)的工具FSCapture
  8. 使用Gitee和Sourcetree进行Keil版本控制
  9. pr cpu100%_Pr插件
  10. sql 去掉重复的数据