免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1264 | 回复: 2
打印 上一主题 下一主题

关于header使用的问题(我想做一个下载系统) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-11 00:23 |只看该作者 |倒序浏览
我想做一个下载系统,文件上传以后,文件名,路径都保存在数据库里面.
我想实现这样的功能,就像大多数的PHP论坛一样,下载帖子的附件,论坛不是直接给出地址,而是一个链接,地址是"attachment?aid=100"这样,然后就弹存窗口,出现文件下载的对话框.而且这样txt也是直接下载,而不是再浏览器中查看了.

我看了一下这些论坛的代码,这种功能应该是用header函数实现的
比如vbb3
$filedata = base64_decode('R0lGODlhAQABAIAAAMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
$filesize = strlen($filedata);
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
header("Content-disposition: inline; filename=clear.gif";
header('Content-transfer-encoding: binary');
header("Content-Length: $filesize";
header('Content-type: image/gif');
echo $filedata;
exit;

看晕了,我对http协议一点也不了解

那位大哥能帮我详细讲解一下实现原理和实现方法?谢谢了
要是光抄代码也能实现,可我想明白why,how!!!

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2004-07-11 01:03 |只看该作者

关于header使用的问题(我想做一个下载系统)

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
以上表示不在缓存保存
header("Content-disposition: inline; filename=clear.gif";
文件名
header('Content-transfer-encoding: binary');
文件类型二进制
header("Content-Length: $filesize";
文件长度
header('Content-type: image/gif');
文件mime

论坛徽章:
0
3 [报告]
发表于 2004-07-11 10:00 |只看该作者

关于header使用的问题(我想做一个下载系统)

普通的这种下载程序,不支持分段下载!, 就是必须一个连接一次性下载成功!, 建议你看看分段下载的头格式, 就是200 和  206 状态代码的处理方式, 自己重新输出头来实现分段下载功能,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP