如何制作下载页面

时间:2011-04-25 11:15:52

标签: php file redirect download

我很高兴如何进行类似于premiumpixels.com的下载页面

示例 - http://www.premiumpixels.com/freebies/custom-audio-player-skin-psd/

如果我们点击“下载”:

1)页面重新加载到premiumpixels.com/download/?file=audio-player

之类的网址

2)一些超时后下载开始。

3)从cdn.premiumpixels.com/uploads/audio-player.zip

下载文件

我如何做同样的事情?它是如何在PHP上完成的?

另外,我想在下载页面打开时发送一些mysql请求,以更新文件下载统计信息。

感谢。

4 个答案:

答案 0 :(得分:2)

使用Javascript的setTimeout功能,然后将浏览器重定向到下载资源。

看起来这是网站使用的来源:

jQuery(function () {

    // get the GET variables
    var theme = getUrlVars();

    var downloadLink = 'http://cdn.premiumpixels.com/uploads/' + theme['file'] + '.zip';

    if(theme['file'])
    {
         jQuery('#downloadLink').attr('href', downloadLink);

         delayedDownload();
    }

    function delayedDownload()
    {
         timeoutID = window.setTimeout(downloadTheme, 1000);
    }

    function downloadTheme()
    {
        window.location.replace(downloadLink);
        //window.open(downloadLink,'','menubar=1,location=1,toolbar=1,width=600,height=500');
    }

    // Read a page's GET URL variables and return them as an associative array.
    function getUrlVars()
    {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }

        return vars;
    }

});

答案 1 :(得分:2)

1。)用户点击链接 - 例如download.php?id=my-app-id;

2。)在download.php中,你做了你喜欢的mysql更新的东西

3.)然后您重定向到实际的下载文件:header("Location: /folder/for/downloadcontent/download.zip");

对于SEO友好网址,在RewriteRule文件

中使用.htaccess

答案 2 :(得分:0)

或者,您可以使用MIME / Multipart类型的响应,在第一部分中发送HTML页面,在另一部分中发送文件,然后根本不需要使用javascript:)

答案 3 :(得分:0)

甚至在页眉中刷新一个简单的元标记:

<meta http-equiv="refresh" content="5; url=http://example.com/myfile">