【问题标题】:File download and Thanks page call in one button press一键下载文件和感谢页面调用
【发布时间】:2012-02-22 16:36:08
【问题描述】:

我在一个站点上有一个下载页面,其中包含许多 ZIP 文件的链接。我想让用户点击下载按钮来下载 ZIP 文件 - 另外,当他们点击按钮时,我希望浏览器将用户重定向到感谢页面。

这可能吗?如果有帮助,该网站是基于 PHP 的!

我了解到您不能一键完成此操作,因此需要调用下载感谢页面,然后从感谢页面提供下载文件功能...如果我有这怎么可能大量的下载按钮/文件?需要从下载页面发送一个变量到下载感谢页面,以允许感谢页面处理正确的文件下载???

**********更新**********

好的,我已经尝试过实现 PHP 变量和 GET 函数 - 但我不高兴,代码如下,这里有一个实时示例的链接 - http://www.example.biz/clients/example/downloads/ - 加载感谢页面的调用被忽略,我只是被提示保存文件下载???

下载页面:

    <a href="http://www.example.biz/clients/example/downloads/thanks.php?file=zip1">zip1</a>
    <a href="http://www.example.biz/clients/example/downloads/thanks.php?file=zip2">zip2</a>
    <a href="http://www.example.biz/clients/example/downloads/thanks.php?file=zip3">zip3</a>

thanks.php 页面:

    <?php
    $file = $_GET['file'];
    if($file == "zip1")
    {
    header("Location: http://www.example.biz/clients/example/downloads/zip1.zip");
    }
    else if($file == "zip2")
    {
    header("Location: http://www.example.biz/clients/example/downloads/zip2.zip");
    }
    else if($file == "zip3")
    {
    header("Location: http://www.example.biz/clients/example/downloads/zip3.zip");
    }

    echo "Thankyou for downloading";

    ?>

********** 更新 2 *********

已放弃 PHP,因为实际的 PHP 下载页面永远不会在屏幕上呈现 - 它提供了正确的下载,但感谢页面永远不会呈现...使用如下 JS 解决方案:

    <script>
    function thanks() {
        setTimeout(function () {
            document.location.pathname = "thanks.html";
        }, 1000);
    }
    </script>

    <a href="zip1.zip" onclick="thanks()">zip1</a>

【问题讨论】:

  • 这太可能了,您所要做的就是将下载链接传递到感谢页面,然后使用元刷新标签调用下载...

标签: php download


【解决方案1】:

您可以简单地将$_GET 值传递到感谢页面... 即当用户单击一个按钮时,该按钮具有一个表单或 javascript 的 window.location 函数,它将用户重定向到感谢页面,您可以轻松地传递 $_GET 值,例如:

http://www.somthing.com/thanks-download-page.php?fileid=1

您可以从thanks-download-page.php 读取$_GET['fileid'] 值,然后将该值传递给数据库或任何您想要获取文件位置详细信息的东西...

【讨论】:

    【解决方案2】:

    类似的东西?

    下载页面

    <a href="thankyou.php?file=zip1">zip1</a>
    <a href="thankyou.php?file=zip2">zip2</a>
    <a href="thankyou.php?file=zip3">zip3</a>
    

    感谢页面

    <?php
    
    $file = $_GET['file'];
    
    if($file == "zip1")
    {
       header("Location: http://domain.com/zip1.zip");
    }
    else if($file == "zip2")
    {
       header("Location: http://domain.com/zip1.zip");
    }
    
    echo "Thankyou for downloading";
    
    ?>
    

    【讨论】:

    • 听起来不错!会试一试!抱歉 - 我认为 Stackoverflow 是一个可以让窥视者解决代码问题的地方?
    • PHP 解决方案不起作用??改为使用 jQuery 函数!
    【解决方案3】:

    如果您从感谢页面重定向到文件下载链接。 浏览器处理下载链接时,不会改变html文档视图。

    你可以用 javascript 来做。

    【讨论】:

    • JS 是通往这里的路——更容易实现;]
    • 在感谢页面上开始下载的更好解决方案,您可以看到大部分下载页面的实现。首先,您会看到带有文本“下载很快开始,如果不是 - 请点击链接”的感谢页面。将来通过该机制,您可以实现下载会话以及您想要的。
    • 感谢 Electronick - 你有任何示例链接我可以看看吗?我有一个棘手的问题是我有很多下载文件 - 所以需要使用变量来允许只渲染一个感谢页面,然后根据感谢页面 url 发送的变量触发特定文件下载
    • 其实它工作起来有点困难,但我认为你可以使用简化的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多