使用PayDotCom或Paypal进行PHP安全下载

时间:2010-02-13 19:15:55

标签: php

以下脚本是一种快速而肮脏的尝试,旨在提供一种保护我在PayDotCom和Paypal上销售的文件的方法。

如果有人有这些服务的经验,我有几个问题......

1)是否有可以在这些付费网站中设置的令牌,我可以在执行下载之前在下面的脚本中查看这些令牌?

2)在下面的脚本中,检索的文件是正确的,但是,要将其保存到的文件名与PHP处理页面(secure-download.php)相同。如何更改保存文件的文件名?例如它将是一个zip文件。

3)下面的代码中有一些注释,我需要一些建议......

<?php

    $file = basename(urldecode($_GET['file']));
    $fileDir = dirname(dirname( dirname( __FILE__ ) ) )."/secure/";

// The secure directory is outside of www root

    if (file_exists($fileDir . $file))
    {
        // Note: Need advice here to do some more checks 
        // on the filetype, size, etc.
        $contents = file_get_contents($fileDir . $file);

        // Note: Need to implement some kind 
        // of check on filetype
        header('Content-type: application/zip');

        echo $contents;
                    //currently the filename is same as the processing file, need to change it to [somefile].zip

    }

?>

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容轻松更改文件名:

header(“Content-Disposition:atachment; filename = myfilename.zip”);

至于令牌保护,您需要参考PayPal文档,因为您需要此脚本来获取传入的令牌变量 - 然后将其传输给它们以确认它是有效的令牌。

答案 1 :(得分:0)

我不确定我理解你的问题,但我认为你有下载文件的问题?如果是这样,这是你的固定代码:

<?php

    $file = basename(urldecode($_GET['file']));
    $fileDir = dirname(dirname( dirname( __FILE__ ) ) )."/secure/";

// The secure directory is outside of www root

    if (file_exists($fileDir . $file))
    {
        $contents = file_get_contents();
        header("Content-Type: x-type/subtype");
        header("Content-Disposition: attachment; filename=\""$fileDir.$file"\"");
    }

?>