我正在尝试使用 fsockopen 上传 2GB 以上的大文件。但 file_get_content 出现以下错误,我无法在内存中存储大文件。我需要分块发送数据,但不知道如何执行此操作。请问有人可以指导我吗?
致命错误:允许的内存大小 134217728 字节已耗尽(尝试分配 727826869 字节)
$file_info = finfo_open(FILEINFO_MIME);
$mime_type = finfo_file($file_info, $file_loc);
$file = file_get_contents($file_loc);
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if ($fp) {
$out = "POST /upload/".basename($url)." HTTP/1.1\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "Accept-Language: en-US,en;q=0.8\r\n";
$out .= "Content-Type: ".$mime_type."\r\n";
$out .= 'Content-Length: ' . filesize($file_loc) . "\r\n";
$out .= "Content-Disposition: attachment; filename=\"".urlencode(basename($file_loc))."\"\r\n\r\n";
fwrite($fp, $out);
fwrite($fp, $file);
$response = '';
while (!feof($fp)) {
$response .= fgets($fp, 128);
}
fclose($fp);
Run Code Online (Sandbox Code Playgroud) php ×1