PHP强制下载远程文件而不读入内存
发布时间:2020-12-13 16:43:19 所属栏目:PHP教程 来源:网络整理
导读:是否可以在 PHP中强制下载远程文件而不将其读入内存?我知道fpassthru(),readfile(),file_get_contents()都会在将文件输出到浏览器之前将文件读入内存. 这是我的代码: if($url = getRemoteFileURL($file_id)){ header('Content-Type: application/octet-str
是否可以在
PHP中强制下载远程文件而不将其读入内存?我知道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 解决方法
如果你做一个标题(“位置:…”);对于下载的文件,如果有的话,URL实际上并没有显示出来.
无论如何,readfile可能是你最好的选择.我认为,鉴于它直接写入输出,PHP继续读取文件的一部分,然后输出它,然后读取下一部分等,整体使用非常少的内存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- php实现判断访问来路是否为搜索引擎机器人的方法
- php – Drupal – 如何以编程方式更新CCK NodeReference字段
- 使用DOMDocument和DOMXPath正确删除PHP中的子元素
- 作为程序员必知的16个最佳PHP库
- php – 如何检查是否使用Codeigniter设置了$data变量?
- php – 在Zend Framework中更改模块名称
- HDU1074 Doing Homework
- php – 修改NetBeans中功能注释的命令/模板.用“/ ** Enter
- php – 如何在功能中使用参数CodeIgniter?
- 实现WordPress主题侧边栏切换功能的PHP脚本详解