如何通过 PHP 脚本下载大文件?
要通过 PHP 脚本下载大文件,代码如下:
示例
<?php
function readfile_chunked($filename,$retbytes=true) {
$chunksize = 1*(1024*1024); // how many bytes per chunk the user wishes to read
$buffer = '';
$cnt =0;
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
if ($retbytes) {
$cnt += strlen($buffer);
}
}
$status = fclose($handle);
if ($retbytes && $status) {
return $cnt; // return number of bytes delivered like readfile() does.
}
return $status;
}
?>输出
这将产生以下输出:
The large file will be downloaded.
函数 ‘readfile_chunked’(用户自定义)接受两个参数 - 文件名和 ‘true’ 的默认值,表示返回的字节数,这意味着大文件已成功下载。变量 ‘chunksize’ 已声明为需要读取的每个块的字节数。 ‘buffer’ 变量被赋值为 null, ‘cnt’ 被设置为 0。文件以二进制读取模式打开并赋值给变量 ‘handle’。
直到 ‘handle’ 的文件结尾,while 循环运行并根据需要读取的块数读取文件内容。接下来它显示在屏幕上。如果 ‘retbytes’(函数的第二个参数)的值为 true,则将缓冲区的长度添加到 ‘cnt’ 变量。否则,关闭文件并返回 ‘cnt’ 值。最后,函数返回 ‘status’。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP