我想创建临时链接以防止直接下载文件。
流程应该是这样的:
用户购买该文件,仅指示电子邮件地址 - >使用所购买临时文件的网址向该地址发送电子邮件。
我希望这个网址只能使用3次。
我该怎么做? 在apache服务器上使用Symfony2。
我为非常模糊的请求道歉,但我会失明,我不知道该找什么方法。
答案 0 :(得分:0)
生成一个随机密钥,创建一个包含fileid,key,number_of_downloads的mysql表。
每次用户点击http://www.yourdomain.com/getfile.php?file=blah&key=blahblah的链接时,您都可以更新表number_of_downloads。如果它是< 2,重定向到文件(使用php标头或symphony的重定向),如果它是> 2,给404或者其他......
答案 1 :(得分:0)
应该很简单(尽管我对Symfony2了解不多)。您将拥有一个获取“关键”参数的下载页面(可能是/download?key=blahblahblah
)。创建一个数据库(或其他类型的存储),每当您需要生成下载链接时,让您的代码组成一个密钥并将其存储在数据库中。每个密钥也可以附加一个数字,它仍然可以使用它的次数,或者一个到期时间。下载页面将确保密钥仍然有效,如果是,则提供该文件。
编辑:这是通过PHP脚本提供文件的示例:
// this may need to change depending on the file type
header("Content-Type: application/octet-stream");
// this makes sure the downloaded file doesn't get named "download.php"
header("Content-Disposition: attachment; filename=stuff.zip");
// and this sends the file
echo file_get_contents("/path/to/stuff.zip");
再次编辑:实际上,this可能是更好的方式。