Azure Linux Web App直接从URL下载文件不起作用

问题描述

最新消息:我听说过Azure支持,并且此行为可能与平台升级和Linux文件系统有关...

假设我有一个为网站提供服务的Linux Web App,在该网站中,我有一些内容在这种情况下为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已被证明是有用的,但是在这种情况下,它相当令人困惑,我无法解决任何问题。

解决方法

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

<?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

编辑:查看以下blog post以获取其他解决方法。