flexpaper组件中关于隐藏真实的swf 地址下载
2019独角兽企业重金招聘Python工程师标准>>>
flexpaper是个不错的将pdf,word之类的文件转化为swf的开源工具,关于这个其实网上说了不少了,它做出来的效果有点象百度文库的效果了,但最近发现一个问题,就是在
SwfFile : escape("xxxx.swf");
这里,可能会造成很容易通过绝对路径下载到swf的地址,于是可以下载到swf,那么有什么好的方法保护之呢?当然,要搞到很复杂是不大可能的,除非有百度的能力,但简单的保护还是有办法的.
办法就是,其实flexpaper的SwfFile是支持以文件流的方式读文件的,所以,
可以简单写一个action或者servlet来读取,代码如下:
[code="java"]
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();
}
[/code]
然后在flexpaper中,指定为:
SwfFile : escape('<%=basePath%>docview/docview!getSwffile.action?documentId=${ismsdocversion.documentId}'),
其实就是指定为这个servlet输出,这样就可以达到不能直接下载SWF的目的了.
另外,在网上发现一位北京兄弟搞的专门对flexpaper进行二次发开的
网站产品,功能比较强大,也受到这位兄弟的指点,特别感谢,
他的网站是:
http://flexpaper.studylead.com/
支持的功能有:
1、单页异步加载-速度奇快!!!
2、自定义在线播放器界面、可放上自己的公司Logo,或者换想要的皮肤。
3、word、ppt、excel、pdf、txt、wps等后台转换为swf功能。
4、可以使用OpenOffice和FlashPaper 两种方式转换 文件。
5、在线浏览文件格式:
MS Office文档: doc,docx ppt,pptx xls,xlsx vsd,vsdx pot,potx pps,ppsx rtf;
WPS office系列: wps et dps
图片: jpg png gif bmp
PDF: pdf
纯文本: txt
6、系统已经实现了关键字查询定位;可设置多个初始搜索关键字,以"|"分割,详见示例 关键字定位。
7、系统实现了控制文档显示页数,可用于收费文档使用,详见示例 控制文档显示页数。
8、系统实现了播放器加载广告,可用于文档添加广告使用,详见示例 播放器加载广告。
9、系统实现了播放器内按页插入广告,可自定义广告内容和插入位置;本站文档均添加了广告示例,请查看。
10、系统实现了全文检索,对文档建立索引,跟百度搜索类似,详见网站搜索。
有兴趣的朋友可以看看
转载于:https://my.oschina.net/jackyrong/blog/102790
flexpaper组件中关于隐藏真实的swf 地址下载相关推荐
- 如何隐藏地址栏中的真实地址_Firefox推出Private Relay插件:可隐藏真实邮箱地址...
Mozilla 正在为 Firefox 开发一项名为Private Relay 的新服务,它能够用来一键随机生成电子邮件别名,以隐藏真实邮箱地址,使用户免受广告商和垃圾邮件侵害. Private Re ...
- UNI-APP在自定义组件中内嵌H5/Html网页,可自定义webview大小,加载不闪屏
问题描述: UNI-APP在自定义组件中内嵌H5/Html网页时,通过内置组件 web-view 实现(如下),发现会自动铺满整个页面,不可控制大小(默认充满屏幕不可控制大小) <web-vie ...
- 黑暗危害:基于学习,大规模发现Android应用中的隐藏敏感操作(HSO)
黑暗危害:基于学习,大规模发现Android应用中的隐藏敏感操作(HSO) 摘要 隐藏敏感操作(HSO),例如:在接收SMS消息时窃取隐私用户数据正越来越多地被移动恶意软件和其他潜在危害应用(PHA) ...
- XP 组件中没有IIS,如何添加IIS组件
在网上找了些资料,结合了一下,发现的确好用.不管是家庭版,还是被修改后的专业版,都可以试一下.[我是在被修改后的专业版上测试成功的],自己测试成功了,拿出来和大家分享一下,希望对大家有用.谢谢. 解决 ...
- 【Android 安全】DEX 加密 ( Application 替换 | 分析 ContentProvider 组件中调用 getApplication() 获取的 Application 二 )
文章目录 一. ActivityThread 中的 installProvider 方法 ( 创建 ContentProvider 内容提供者 ) 二. installProvider 方法的第三分支 ...
- 【Android 安全】DEX 加密 ( Application 替换 | 分析 ContentProvider 组件中调用 getApplication() 获取的 Application )
文章目录 一. ContentProvider 创建过程分析 二. ActivityThread 中的 H 处理 BIND_APPLICATION 消息 三. ActivityThread 中的 ha ...
- 在Vue组件中获取全局的点击事件
使用场景: 在Vue组件中点击某元素之外的地方移除该元素 需求: 如上图所示,"用户列表"页面有三个Vue组件组成,分别是"菜单组件","导航组件&q ...
- 在 Java EE 组件中使用 Camel Routes
2019独角兽企业重金招聘Python工程师标准>>> 摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE ...
- 解除隐藏文件cmd命令_Win10用cmd命令隐藏文件|Win10相互转换隐藏真实文件
Win10中,从简单到困难,隐藏文件/文件夹的方法有不少,但是常用的方法来来去去,都是那几个,想必有不少用户已经掌握了.这篇文章是本站给大家带来一种操作起来有点麻烦,但是比较有趣的,用cmd命令相互转 ...
最新文章
- Proxy.newProxyInstance动态代理[z]
- 获取iPhone通话记录(需越狱)
- XMPP接受发送消息
- [转帖]Sqlcmd使用详解
- angular4.0微信oAuth第三方认证的正确方式
- JSP教程–最终指南
- 回旋滚动_中频炉电动旋转轴承,管道回旋轴承,电炉旋转轴承
- 中序线索树和后序线索树
- 简单的php代理 Simple PHP Proxy
- Android--分享功能
- 【WPS】excel 使用MD5宏 windows环境
- Centos7 安装谷歌浏览器
- [Java Framework] SpringBoot几种启动后自动初始化的几种方式
- 卧槽,这个Vue调试神器牛逼!点击页面元素居然能直接打开对应组件文件…
- C#编程,输入里程数和耗油量,计算每升的里程数,程序中使用异常处理器,当输入的里程数或耗油量无法转换成double值时处理FormatException。
- 经验 | 本硕985回忆研究生这三年
- linux编译谷歌浏览器方法,构建Linux版本的谷歌Chrome浏览器
- zblogphp 广告联盟_天兴工作室:广告位大全插件(网站各种广告位集合效果)
- linux系统新硬盘格式化,linux系统如何格式化一块硬盘?
- RabbitMQ-dlx死信队列