0

我想创建临时链接以防止直接下载文件。

流程应该是这样的:

用户购买文件,仅指明电子邮件地址 -> 向该地址发送一封电子邮件,其中包含购买的临时文件的 url。

我希望这个网址只能使用 3 次。

我怎样才能做到这一点?在 apache 服务器上使用 Symfony2。

我为这个非常模糊的要求道歉,但我会失明,我不知道要寻找什么来找到方法。

4

2 回答 2

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 或其他...

于 2013-07-12T18:02:01.747 回答
0

它应该很简单(虽然我对 Symfony2 了解不多)。您将有一个下载页面,其中包含一个“key”参数(可能是/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");

再次编辑:实际上,可能是一个更好的方法。

于 2013-07-12T18:02:38.773 回答