1

最新消息:我收到了 Azure 支持的回复,据说这种行为与平台升级和 Linux 文件系统有关......

假设我有一个为网站提供服务的 Linux Web 应用程序,在该网站中,我有一些内容(在本例中为 PDF 文件)存储在名为“temp”的文件夹中。

现在我希望允许访问者通过访问该 URL 直接下载文件(链接是假的,只是一个例子)-

http://test.azurewebsites.net/temp/PdfIWantToDownload

这以前可以工作,但最近我发现由于某种原因它被破坏了,当访问上面的链接时,下载确实被触发,但它卡在 1MB 并且没有完成。

我确实将所有资源都移到了新的 Azure 订阅中,但不确定这是否会产生这样的问题。

添加 PHP 下载处理程序后,可以通过此链接下载文件 -

http://test.azurewebsites.net/temp/download.php?filename=PdfIWantToDownload

这里发生了什么?是否需要调整某种配置以允许直接下载 URL?还是 Azure 禁止这种使用?

编辑:直接访问链接时下载确实卡住了,有趣的是,下载在一段时间后失败(这是预期的),然后如果我恢复下载(使用 Chrome,但在这种情况下怀疑浏览器问题),我得到打破 1MB 的障碍,成功下载,没有任何问题。

Azure 已被证明在许多情况下都很有用,但在这一次中,它相当令人困惑,我无法对此进行任何故障排除。

4

1 回答 1

0

在解决此问题时,请尝试使用以下解决方法:

<?php 
    $handle = fopen("http://www.example.com/", "rb"); 
    if (FALSE === $handle) {
        exit("Failed to open stream to URL"); 
    }

    $contents = ''; 
    while (!feof($handle)) {
        $contents .= fread($handle, 8192); 
    }

    fclose($handle); 
?>

https://www.php.net/manual/en/function.fread.php

编辑:查看以下博客文章以获取其他解决方法。

于 2020-09-15T20:54:16.443 回答