gpt4 book ai didi

php - 将文件流式传输到 Android 客户端

转载 作者:行者123 更新时间:2023-11-29 21:41:11 24 4
gpt4 key购买 nike

我想用 android 下载一个文件,所以我用 php 使用以下函数流式传输文件

function stream($fileName,$fileSize,$fName){
//header("Pragma:public");
//header("Expires:0");
//header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
//header("Cache-Control:private",false);
header("Content-Disposition:attachment;filename=\"".$fName."\";");
header("Content-Type:application/octet-stream");
header("Content-Transfer-Encoding:binary");
header("Content-Length:".$fileSize);
readfile($fileName);
}

但下载不适用于安卓设备。在我的电脑上,这不是问题。我已经在 http://www.digiblog.de/2011/04/android-and-the-download-file-headers/ 上找到了解决方案但这对我没有帮助。

最佳答案

my blog posting that you cite 中所述,您在 Android 设备上的下载成功取决于多种因素,这些因素不能通过阅读您的代码来判断:

  • 您的 $fileName 必须包含大写扩展名。

  • 调用下载的纯 URL 必须包含开始下载所需的所有信息。可能不涉及 POST 参数,它们不会被转发到 Android 下载管理器,因此下载会失败。 GET 参数(查询字符串)可以。

  • 此外,您在所有细节上都没有遵守博文:
    在您的 Content-Disposition header 后有一个分号,这是致命的。

我还建议仅从 Content-Type 和 Content-Disposition header 开始。当您让它在 Android 上运行时,您仍然可以添加任何其他要发送的 header 。但是不要忘记在完成后在 Android 上重新测试(如果可能的话,多个版本)。 Android 对其中一些 header 非常挑剔(或者我应该说“讨厌”?)。

如果所有这些都没有帮助,您将必须提供有关您的案例的更多信息。当你尝试时究竟会发生什么?你叫什么网址。传递给您的函数的参数是什么?

关于php - 将文件流式传输到 Android 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17062559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com