相关疑难解决方法(0)

file_get_contents 大文件上传

我正在尝试使用 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

2
推荐指数
1
解决办法
9491
查看次数

标签 统计

php ×1