0

我正在使用 jQuery 和 PHP。我用 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);
    }

我可以通过这个脚本下载一个文件,但是如果它是一个大文件(比如 1GB),readfile 函数需要他的时间直到下载开始。所以我必须等待大约一分钟左右,直到下载真正开始。知道如何优化我的脚本,以便立即开始下载吗?

4

1 回答 1

0

您可以配置 Apache 以在.htaccess文件中设置正确的标头。然后,您可以直接链接到文件而不是 PHP 页面。这也将减少服务器负载。

当然,如果 PHP 脚本执行的功能不仅仅是设置标头(例如身份验证),那么这不是一个选项。正如@NB 在他的评论中提到的那样,您必须通过 PHP 分块传递文件。

于 2013-09-02T08:51:54.430 回答