在PHP中复制大文件(超过2 GB)时,可以使用以下方法来实现:
fread()
和fwrite()
函数:这种方法是通过分块读取和写入文件来实现的。以下是一个简单的示例:
$source = 'source_file.txt';
$destination = 'destination_file.txt';
$chunk_size = 1024 * 1024; // 1 MB
$source_handle = fopen($source, 'r');
$destination_handle = fopen($destination, 'w');
while (!feof($source_handle)) {
$buffer = fread($source_handle, $chunk_size);
fwrite($destination_handle, $buffer);
}
fclose($source_handle);
fclose($destination_handle);
copy()
函数:copy()
函数可以直接复制文件,但是在处理大文件时可能会遇到内存限制。为了解决这个问题,可以在调用copy()
函数之前增加内存限制。
$source = 'source_file.txt';
$destination = 'destination_file.txt';
ini_set('memory_limit', '4G'); // 设置内存限制为4 GB
if (copy($source, $destination)) {
echo 'File copied successfully.';
} else {
echo 'Failed to copy file.';
}
有一些第三方库可以帮助处理大文件,例如league/flysystem
。这些库提供了更高级的功能,例如文件分块上传和断点续传。
推荐的腾讯云相关产品:
产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云