flexpaper流读取
原贴地址
http://jackyrong.iteye.com/blog/1768553
flexpaper是个不错的将pdf,word之类的文件转化为swf的开源工具,关于这个其实网上说了不少了,它做出来的效果有点象百度文库的效果了,但最近发现一个问题,就是在
SwfFile : escape("xxxx.swf");
这里,可能会造成很容易通过绝对路径下载到swf的地址,于是可以下载到swf,那么有什么好的方法保护之呢?当然,要搞到很复杂是不大可能的,除非有百度的能力,但简单的保护还是有办法的.
办法就是,其实flexpaper的SwfFile是支持以文件流的方式读文件的,所以,
可以简单写一个action或者servlet来读取,代码如下:
- try
- {
- ServletOutputStream out =
- this.getResponse().getOutputStream ();
- this.ismsdocversion = this.docversionsService
- .getswfnamebydocumentId(documentId);
- String realPath =ServletActionContext.getServletContext().getRealPath("swffiles")+"/"+this.ismsdocversion.getAttachmentflashname();
- logger.info("swrealpath is"+realPath);
- InputStream ips = null;
- OutputStream ops = null;
- this.getResponse().reset();
- this.getResponse().setContentType("application/swf");
- File file = new File(realPath);
- ops = this.getResponse().getOutputStream();
- ips = new FileInputStream(file);
- this.getResponse().addHeader("Content-Length", new Long(file.length()).toString());
- int i = 0;
- byte[] buffer = new byte[1024];
- i = ips.read(buffer);
- while (i != -1) {
- ops.write(buffer, 0, i);
- i = ips.read(buffer);
- }
- ips.close();
- ops.flush();
- ops.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
然后在flexpaper中,指定为:
SwfFile : escape('<%=basePath%>docview/docview!getSwffile.action?documentId=${ismsdocversion.documentId}'),
其实就是指定为这个servlet输出,这样就可以达到不能直接下载SWF的目的了.
flexpaper是不可以用绝对路径的调用本地或项目外的swf文件的,这个我们就有两种方法,一种是把swf和项目放在同一个目录下面,通过相对路径来获取
另一种是在运行项目的tomcat的server.xml配置里面host下添加一段内容
<Context crossContext="true" docBase="E:/SVPE/" path="/SVPE" reloadable="false"/>
function showFlash(url){
$('#documentViewer').empty().FlexPaperViewer(
{ config : {
SWFFile : escape(url),
//SWFFile : file,
jsDirectory : $basePath+'/FlexPaper/js/',
Scale : 0.6,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : true,
FullScreenAsMaxWindow : false,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
InitViewMode : 'Portrait',
RenderingOrder : 'flash,html',
StartAtPage : '',
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
WMode : 'window',
localeChain: 'zh_CN'
}}
);
}
flexpaper流读取相关推荐
- idea 文件流读取web-inf下的文件_C#初学者教程系列20:Stream流读写
本文是C#初学者简单教程,这是第20篇.感谢观看,记得关注我,后续还有更多教程文章,谢谢. 本文环境为Visual Studio 2019. 一.介绍 在C#文件操作中,通常使用流来读取和写入文件.流 ...
- java 文件流读取文本_如何在Java 8中处理流和读取文本文件
java 文件流读取文本 我已经使用最新的Java8转换了一个旧的实用程序类. 我经常使用它来打印清单文件的内容,以检查任何神秘的jar文件的版本等.只需运行" java ztools.Pr ...
- C++中使用流读取数据 ifstream
C++中使用流读取数据 ifstream https://www.cnblogs.com/hjj-fighting/p/10429178.html
- 字符流读取,乱码问题
碰到问题,字符流读取文本文件,读取输出,强转成char出现乱码问题. 题目 用流统计文本文件的字符个数 public static int getSum() {int count = 0;Buffer ...
- 【转】为什么不能使用字符流读取非文本的二进制文件?
读取文件 刚学Java的IO流部分时,书上说只能使用字节流去读取图片.视频等非文本二进制文件,不能使用字符流,否则文件会损坏.所以我就一直记住这一点了,但是为什么不能使用,这一直是我的一个疑惑.今天, ...
- IO流读取文件用户信息根据年龄排序后,写到文件
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java ...
- c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2
软帝学院笔记Day18 IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符 ...
- Java中使用字符流读取UTF-8和写出txt文件 乱码 问题
乱码问题一直都是非常难受的问题,本文解决Java中使用字符流读取UTF-8和写出txt文件 乱码 话不多说,直接上图 输出结果: 使用代码: 解决:
- Java File文件流读取文件夹内的文件并替换文件内容
Java File文件流读取文件夹内的文件并替换文件内容 一.前言 二.代码 三.运行结果 一.前言 批量读取文件夹内的文件,并替换各个文件的内容 二.代码 新建一个普通 Java 项目就可以,创建文 ...
最新文章
- chcon命令 selinux 配置等
- Python报错:The truth value of an array with more than one element is ambiguous
- 【LOJ6033】棋盘游戏【二分图博弈】
- 【ElasticSearch】Es 源码之 PeerRecoverySourceService 源码解读
- SQL-92标准 中文翻译——定义、记号和约定 (记号)
- [Ext JS6]视图模型和数据绑定
- 判断zk是否挂掉_Zookeeper入门学习第一天,zk集群简单介绍
- windows下MySQL 5.7+ 解压缩版安装配置方法
- 仓库货位卡标识牌_仓库应如何规划?
- mac使用的文章合集 alfred利器
- Java 面试—乐/悲观锁,wait/notify/notifyAll对比
- python定时任务contrib_python定时任务的实现
- 业务知识 - 结构化思维
- 亚马逊云科技荣获2021中国公有云平台用户满意度第一
- git reset三种模式区别和使用场景(hard,soft,mixed)
- 优维科技低代码开发平台在券商系统的落地实践
- 手机号码界面输入数字查看手机信息
- android+下落+动画,完美起航-Android面试题之动画+事件处理篇
- landesk桌面管理服务器安装篇
- Java识别获取pdf中文字信息(此方法任意pdf的信息都可以拿到)