首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用PHP头下载大型文件

如何使用PHP头下载大型文件
EN

Stack Overflow用户
提问于 2013-09-08 12:00:53
回答 1查看 1K关注 0票数 0

我有“文件下载中心”的大型文件(100 2GB 2GB)。

我正在使用PHP。

我的问题是,当强制使用php headers下载文件时,服务器内存消耗很大,尽管我在下载过程中从文件中生成了,这意味着当5个用户同时下载大文件时,服务器将停止工作。

如何使用户从我的服务器下载大文件没有任何问题。

例如,如果我使用header("location : path/to/files/2GB.zip");,问题就会结束。但这是我不需要的,因为我不需要给用户直接链接到文件的安全性。

什么是解决办法?

EN

回答 1

Stack Overflow用户

发布于 2013-10-16 20:39:08

您可以将文件存储在web路径之外,然后在下载时包含这些文件,使用头函数将其部署到用户。这有点过火了,但效果很好:

代码语言:javascript
运行
复制
$getFiles = fread($FILEHANDLE,$FILESIZE);       

header("Content-Transfer-Encoding: Binary");
header("Content-length: ".$FILESIZE."");
header("Content-type: ".$FILETYPE."");
header('Content-Disposition: attachment; filename="'.$FILENAME.'"');

echo $getFiles;

在传输文件之前,这会消耗更多的内存,因为在服务器上读取文件时,下载程序将永远不知道文件位于何处。YMMV有很大的文件,原因很明显。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18683443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档