我们正在使用 cURL 将文件从我们的一台服务器下载到我们的工作流服务器。我正在使用下面粘贴的简单代码,但我的文件“加倍” - 两倍大小,两倍长度。似乎文件已保存,然后再次附加,但我无法弄清楚为什么会发生这种情况。
以下是我的本地机器上的测试代码,其行为方式完全相同:
    $file_name = 'test.mp3';
    $copy_to_dir = 'C:/test_files/';
    $file_url  = 'C:/source_files/test.mp3';
    $fp = fopen ($copy_to_dir. '/' . $file_name, 'w');
    $ch = curl_init($file_url);
    curl_setopt_array($ch, array(
        CURLOPT_URL            => $file_url,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FILE           => $fp,
        CURLOPT_TIMEOUT        => 50
    ));
    $results = curl_exec($ch);
    if(curl_exec($ch) === false)
    {
      //echo 'Curl error: ' . curl_error($ch);
        return false;
    }
    curl_close($ch);
    fclose($fp);
原文件9MB,每次拷贝18MB
编辑:让这成为你在赶时间时不要复制/粘贴代码的教训,以“节省时间”。第二个 curl_exec() 应该是 curl_errno() 或其他错误处理策略 - 即使只是使用 fwrite() 也意味着我将下载所有内容两次,因此一旦找到解决方法,您就不想退出