如何解决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以获取其他解决方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。