网页PPT,如何只能供浏览,而不能被下载?

最近的一个项目,要求提供大量的PPT形式的课件,供客户在网上学习使用。但领导又要求不能让客户下载,编辑PPT,只能在线浏览。这些天一直研究这个问题,但还是没有找到很合适的方法。因为CSDN现在无法访问,也可能有更好的方法。现在先将我的想法写下来,跟有这方面要求的朋友一起控讨一下。

现有的网上的方法,收录于下:
1.在web.xml中加:  
  <mime-mapping>    
  <extension>ppt</extension>    
  <mime-type>application/mspowerpoint</mime-type>    
  </mime-mapping>
点评:这是不是在java里的东西?反正不会用。

2.你可以修改response.contenttype的值,比如  
  response.contenttype="application/pdf"   ;  
  response.writefile(request.physicalapplicationpath   +   "test.pdf");  
  response.end();  
  不懂powerpoint是的contenttype是什么,可以去查一下。
Response.ContentType   =   "application/x-msdownload   ;   Charset=utf-8";  
  Response.AddHeader("Content-Disposition",   "attachment;   filename=...");  
点评:试了半天,出来一堆乱码,晕倒

3.还是自己写一个activex吧。这样安全性也要好一些。
至于ppt的显示部分可以考虑使用微软提供的powerpointviewer。
点评:不会写,也没在网上找到,还是自己水平不够啊,期待高人写一个,呵呵。


4.把PPT转换为HTML形式
点评:这个方法也不太可行,用程序转换的话,速度太慢了。用PPT另存为Web的话,好像效率高一点,博客园里还看到一位朋友写的,将转换后的Frame去掉的方法,没试,但应该可以。

5.我在这里推荐一种方法:将PPT转换为FLASH。
这需要用到软件,从网上下载一个就行了,我找了一个叫“iSpring Free”的软件,用起来还不错。转换后,会出现三个文件:fixprompt.js,index.html,XXXX.swf (此为你转换的PPT的名字,后缀变为.swf)。然后直接点击index.html,就可以看了,效果很不错,可以全屏,可以跳转换页,如图:

ppt.JPG

index.html中body的源码:
<body topmargin="0" leftmargin="0" bgcolor="#000000">
<!-- saved from url=(0013)about:internet -->
<object id="presentation" width="720" height="576" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="PowerPoint演示文稿.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<param name="allowFullScreen" value="true" />
<embed src="PowerPoint演示文稿.swf" quality="high" bgcolor="#000000" width="720" height="576" name="presentation" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="
http://www.adobe.com/go/getflashplayer" allowFullScreen="true" />
</object>
<script type="text/javascript" src="fixprompt.js"/>
</body>
基于这种思路,可不可以把PPT转换为FLASH,然后将index.html中的源码中,拷入.aspx中,将.swf的名字,替换成<%=SwfFineName%>,从cs文件中动态获取呢?可以考虑由dropdownlist绑定所有通过软件转换而来的swf的文件名,这样实现在线浏览的效果。

项目还在继续,尝试依旧前行,写下此文,以求得到更多的启示。

posted @ 2008-08-13 18:35  Haven  阅读(7571)  评论(10编辑  收藏  举报