cURL下载二进制文件“双打”文件

We are using cURL to download files from one of our servers to our workflow server. I'm using the simple code pasted below, but my files are "doubling up" - twice the size, twice the length. Would seem the file is saved, then appended again, but I can't figure out why in the world that is happening.

Below is test code on my local machine behaving exact same way:

    $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);

Original file is 9MB, copy is 18MB every time

EDIT: let this be a lesson to you not copy/paste code when you're in a hurry, to "save time". The second curl_exec() should be a curl_errno() or other error handling strategy - even just using fwrite() meant I would be downloading everything twice, so you don't want to just quit once you get a workaround

You're calling curl_exec() twice, so it downloads the file twice. Change:

if(curl_exec($ch) === false)

to:

if($results === false)