我正在开发一个项目,用户可以购买媒体文件。 付款处理后,我想让他们下载文件。 我想可以肯定地说我应该有一个临时链接到这些文件。一个链接到用户的IP,可能还有一个时间戳? 问题是我不知道从哪里开始。首先是 。这是做到这一点的方法吗?如果是这样..我怎么继续使用PHP。 (我想我不需要确切的脚本只是提示如何做到这一点,虽然如果有一个现有的脚本,我不介意) 谢谢。使用php下载临时链接文件
2
A
回答
6
既然你要处理在PHP中,你可能会藏汉使用登录来检查该文件,如果用户购买了文件,除此之外,代码应该有点像这样:
header('Content-Type: application/force-download');
$file = new File(intval($_GET['id']));
$fileLocation = dirname(__FILE__) . "/../../upload/fileArchive/" . $file->id . "." . $file->type;
header('Content-Length:' . filesize($fileLocation));
header("Content-Disposition: inline; filename=\"".$file->name."\"");
$filePointer = fopen($fileLocation,"rb");
fpassthru($filePointer);
采取从生产和测试
2
我不会绑定到IP的临时链接,它不是非常人性化的解决方案。
存储在例如表所购买的媒体:
- 介质ID(这是指在媒体详细描述的另一个表)
- 唯一令牌(这将identificate购买者除外)
- 客户端ID
- 总下载量(也许你想使下载5次)
- 令牌到期(如果你想限制这一访问)
下载url必须包含唯一令牌和一些其他数据(用户的散列电子邮件等),以使url更独特和更安全。
样品网址:http://example.com/purchase/nc9o32ocrn8of4nv348/989934ov9344b
首先哈希持有购买本身,而第二个标识用户。成功识别您可以像Kristoffer said这样的文件。
0
header('Content-Type: application/force-download');
$filee = "r.txt";
$fileLocation = dirname(__file__).'/the_sub_folder_for_file/'.$filee;
header('Content-Length:' . filesize($fileLocation));
header("Content-Disposition: inline; filename=\"".$filee."\"");
$filePointer = fopen($fileLocation,"rb");
fpassthru($filePointer);
相关问题
- 1. 与ASP.NET临时文件下载链接
- 2. 下载临时链接
- 3. 如何使临时链接可下载文件
- 4. 下载链接使用PHP中的href下载XML文件
- 5. 创建临时链接供下载
- 6. PHP临时使用文件
- 7. PHP:张贴链接下载文件
- 8. 将临时下载链接(URL)转换为永久链接
- 9. 下载文件中使用的链接
- 10. django使用链接下载csv文件
- 11. 用php下载数字下载链接
- 12. 使用LMDWebHTTPGet文件下载到Internet临时文件目录仅
- 13. 下载文件时的临时消息
- 14. 使用PHP创建.jpg文件的下载链接
- 15. 如何使用PHP为文件创建下载链接?
- 16. 如何使用链接下载php中的文件
- 17. Python:从使用php实现的链接下载文件
- 18. 使用PHP为上传文件生成下载链接
- 19. 使用符号链接下载PHP文件
- 20. DENY使用php直接下载文件
- 21. 从链接下载文件
- 22. 下载使用php的图像链接
- 23. Dropbox - 获取文件的临时链接
- 24. 如何使用R从下载链接下载文件
- 25. 如何使用下载链接下载带节点的文件?
- 26. 从网站下载临时文件
- 27. 如何下载临时文件
- 28. 用于下载文件夹的链接
- 29. 使用PHP下载文件
- 30. 使用PHP下载文件
下载页面本身怎么样。我不确定如何设置它,以便隐藏文件的位置。请您详细说明这一部分? 谢谢 – salmane 2010-08-26 13:35:19