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. 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。...
  2. GET和POST两种基本请求方法的区别
  3. AttributeError: ‘Model‘ object has no attribute ‘_get_distribution_strategy
  4. 深入了解React组件重新渲染的条件和生命周期
  5. python中返回值为ture表达式_python return逻辑判断表达式(21)|python教程|python入门|python教程...
  6. iOS使用lua语言的使用步骤与实现插件的动态更新
  7. java gzip压缩_Java GZIP示例–压缩和解压缩文件
  8. Java前端自定义错误信息封装_SpringBoot2.3定制错误页面的方法示例
  9. 【STL源码剖析】STL六大组件功能与运用(目录)
  10. 深度学习算法-YOLO
  11. 我的世界颜色代码服务器不显示,我的世界颜色代码符号大全,让你构造一个五彩斑斓的世界...
  12. labview虚拟心电监测系统_使用LabVIEW进行心电信号处理
  13. Python爬虫理论 | (2) 网络请求与响应
  14. html 必填设置,html如何设置必填项
  15. mro列表_类的继承mro
  16. SpringCloud基础学习
  17. Spring的回炉重造
  18. activiti-超时自动审批
  19. Ceph管理平台Calamari的架构与功能分析
  20. RHCSA 认证考试容器解析版 (2022最新版)

热门文章

  1. django + mysql 支持表情包
  2. Windows 10 Enterprise LTSC MSDN官方纯净版下载
  3. JAVA酒店管理系统
  4. [转]架构蓝图--软件架构 4+1 视图模型
  5. 《Android框架揭秘》——导读
  6. 【音效处理】Reverb 混响算法简介
  7. 亿安科技作手_亿安科技作手(2)-李B
  8. java多网卡组播,多网卡 组播
  9. c语言编译器 for mac,编译工具CMake for mac
  10. WIN7 IE10降级为IE9