繁体   English   中英

从服务器下载文件

[英]Download a file from a server

目前,我正在使用此代码向用户输出文件。

header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$or.'');
readfile($file);

但是,代码不会告诉浏览器文件的大小。 而且它无法输出1 gb之类的大文件。 我想让代码告诉浏览器文件的实际大小并能够输出大文件

对于大文件,您需要使用分块传输。 在大多数情况下,基础Web服务器(Apach / Nginx / WHY)将具有执行此操作的功能。 我建议您使用它们。

这样一来,您的代码不会长时间占用工作线程,并且在您的下载过程中,可控计时器不会中断(这会使您的用户不满意)。

顺便说一句-您正在谈论的是文件下载,而不是上传-这是用户到服务器的。 您的标签有误。

即使readfile()发送大文件, readfile()也不会出现任何内存问题。 如果遇到内存不足错误,请确保使用ob_get_level()关闭输出缓冲。

header("Content-Length: $value");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM