Chinaunix

标题: 关于下载的代码问题 [打印本页]

作者: luckdesk    时间: 2003-01-21 09:48
标题: 关于下载的代码问题
各位大大:

我有一个问题是关于用PHP写下载代码的:

为了不让一些用户用flashget或网络蚂蚁下载(因为这太占带宽),我需要隐藏
可下载文件的真实地址(文件都在20M左右,比较大),一般的链接只要用鼠标右键再选“复制快捷方式”就可得到地址,或直接将此地址拖到flashget小窗口就可以下载。因此,我需要在下载页面屏闭右键,但一屏闭右键,正常的下载(即用鼠标右键选“目标另存为。。”)也不能用了!所以,我想实现左键下载功能,由于我提供的是.wmv,.rm的电影文件下载,所以一点左键,IE就会自动跳出播放器而不是下载!但我曾在某个网站看到过用PHP写的下载页面,他是用按钮的方式,一点这个按钮,就会开始下载,不管他是.wmv,或.rm,.ram,都不会跳出播放器!请问这样的PHP代码是怎么写出来的?

谢谢
作者: redfox    时间: 2003-01-21 11:38
标题: 关于下载的代码问题
刚才研究了一下,这样应该可以了!

<?php
$filename="那么爱你为什么.avi";
header('Content-Type:application/octetstream');
header("Content-Disposition:attachment;filename=$filename";
header('Pragma:no-cache');
header('Expires:0');
$fd=fopen($filename,"r";
while ($buffer=fgets($fd,1024)) {
echo $buffer;
}
fclose($fd);
?>;
作者: luckdesk    时间: 2003-01-21 17:08
标题: 关于下载的代码问题
謝謝版主.

但我試了一下以後,發現下載窗口可以彈出來,但對於WMV文件只能下載十個字節,
RM文件只能下載4個字節,是不是文件打開方式有關系?

另:我打繁體字是因為我電腦里簡體字輸入有問題了

謝謝
作者: luckdesk    时间: 2003-01-21 17:18
标题: 关于下载的代码问题
版主,我把fgets()改成fread()後,現在可以了.所以不用回復了

非常謝謝
作者: redfox    时间: 2003-01-21 17:37
标题: 关于下载的代码问题
对,可能和系统和php版本有关。
作者: luckdesk    时间: 2003-01-21 17:46
标题: 关于下载的代码问题
對了,再問一下,是否用這種方法下載,與一般的下載相比,是否占用更多的主機資源?

3q
作者: redfox    时间: 2003-01-21 20:02
标题: 关于下载的代码问题
当然费内存,windows下每个连接耗费内存3-4M,unix下没试。特别是大文件,下载时会长时间占用内存。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2