- 主题:请问如何用php读出文件的内容直接显示,阻止*.swf被下载,而只
自相矛盾的需求
【 在 ruuen (唐僧) 的大作中提到: 】
: 为什么我用这个方法显示的都是乱码。
: $file="Demo.swf";
: $data = file_get_contents($file);
: ...................
--
FROM 180.173.56.*
都说了你这需求自相矛盾
你要显示给用户,那就必须让用户获得此文件
不想让用户下载,那就不能让用户获得此文件
我看你十有八九是想增加下载的难度,让用户不能通过一个简单 HTTP GET 直接
获得文件
当然不管怎么说文件都必须原样传送到 client,而且从 HTML 的基本特性来看你
无法阻止 client 获得这些内容,所以这个没啥意义
如果你想做的就是增加下载难度那你就该好好考虑下什么水平的难度足够应付
【 在 ruuen (唐僧) 的大作中提到: 】
: 这个也不行.有谁知道怎么弄啊?
: echo "<embed value=\"".file_get_contents("Demo.swf")."\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"778\" height=\"82\"></embed>";
--
FROM 180.173.56.*
增加难度限制的方法那么一大堆你偏偏挑了个相对于楼主目测水平有点难的……
简单的比方说来个障眼法的 data uri,虽说浏览器兼容性需要考虑
或者就是本来就需要登录就请求 HTTP basic auth
或者跟现有的 cookie authentication 结合做验证
再就是纯防(弱智级)机器人的 referer 检查
……再说就比 X-Sendfile 难度高了就算了
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 听起来像是nginx的 X-Sendfile 做的事情。
--
FROM 202.120.55.*
既然需要写 application logic 那你怎么知道楼主的项目多大以及楼主有没有
能力去改动这东西
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 额。。我还以为sendfile够简单了呢。
--
FROM 202.120.55.*
【 在 ruuen (唐僧) 的大作中提到: 】
: 问题是我的web目录只有700M空间,我需要放的文件总量会远远大于这个,放在web目录之外的文件直接用 ...src=\"文件名\" 我访问不到,必须要读内容再显示啊。这难度不是我增加的,是我越不过去的。
按这个描述你的需求是让 client 能够通过 GET 某 URL 获得一个不存在于
web 目录里的资源
这跟阻止下载一点关系都没有
--
FROM 180.173.175.*
(未测试不过差不多如此)
web/path/to/swf.php:
<?php
header('Content-type: application/x-shockwave-flash');
print get_content_of_swf_from_database();
HTML:
<embed src="swf.php" .../>
【 在 ruuen (唐僧) 的大作中提到: 】
: 我本来是想把文件放到数据库的longblob字段里的,那样的话其实也需要读数据再显示啊,那该怎么做啊?
--
FROM 180.173.175.*
curl 出来对比一下你数据库里的是什么东西
【 在 ruuen (唐僧) 的大作中提到: 】
: 您好:我不知道哪儿有问题,还是显示不出来。麻烦您给看一下。谢谢啦。
: 存入数据库的值
: insert.php
: ...................
--
FROM 180.173.117.*