gpt4 book ai didi

php - 下载脚本非常慢

转载 作者:行者123 更新时间:2023-11-28 20:36:55 27 4
gpt4 key购买 nike

我用 javascript 和 php 编写了一个下载脚本。它可以工作,但如果我想下载一个大文件(例如 1GB zip 文件),它的时间太长,无法完成请求。我认为这与我阅读该文件有关。如果是这样,知道如何更快地获得它吗?
注意:我需要一个 header ,强制下载图像、pdf、任何类型文件类型的原因。

JS 非常简单。看看这个:

function downloadFile(file){
document.location.href = "script.php?a=downloadFile&b=."+ file;
}

PHP 很简单:

function downloadFile($sFile){
#Main function
header('Content-Type: '.mime_content_type($sFile));
header('Content-Description: File Transfer');
header('Content-Length: ' . filesize($sFile));
header('Content-Disposition: attachment; filename="' . basename($sFile) . '"');
readfile($sFile);
}

switch($_GET['a']){

case 'downloadFile':
echo downloadFile($_GET['b']);
break;
}

最佳答案

我猜缓冲是大文件的问题。尝试以小块(例如兆字节)读取文件并调用 flush函数在打印每个 block 后刷新输出缓冲区。

编辑:呃,好吧,这是您应该尝试的代码示例:

function downloadFile($sFile){
#Main function

if ( $handle = fopen( $sFile, "rb" ) ) {
header('Content-Type: '.mime_content_type($sFile));
header('Content-Description: File Transfer');
header('Content-Length: ' . filesize($sFile));
header('Content-Disposition: attachment; filename="' . basename($sFile) . '"');

while ( !feof($handle) ) {
print fread($handle, 1048576);
flush();
}
fclose($handle);
} else {
header('Status: 404');
header('Content-Type: text/plain');
print "Can't find the requested file";
}
}

关于php - 下载脚本非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203768/

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