PHP强制下载远程文件而不读入内存

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP强制下载远程文件而不读入内存脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在 @L_403_0@中强制下载远程文件而不将其读入内存?我知道fpassthru(),reaDFile(),file_get_contents()都会在将文件输出到浏览器之前将文件读入内存.

这是我的代码

if($url = getRemoteFileURL($file_id))
{
  header('Content-tyPE: application/octet-stream');
  header('Content-DisposITion: attachment; filename="abc.zip"');
  header('Content-transfer-encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate,post-check=0,PRe-check=0');
  header('Pragma: public');
  header('Pragma: no-cache');

  readfile($url);  // is there a better function ?
}

不想标题(“位置:”),因为这会显示URL

解决方法

@H_512_16@ 如果你做一个标题(“位置:…”);对于下载的文件,如果有的话,URL实际上并没有显示出来.

无论如何,readfile可能是你最好的选择.我认为,鉴于它直接写入输出,PHP继续读取文件的一部分,然后输出它,然后读取下一部分等,整体使用非常少的内存.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP强制下载远程文件而不读入内存全部内容,希望文章能够帮你解决PHP强制下载远程文件而不读入内存所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。