REST API: Upload - Datei wird zerstört

Guten Tag Zusammen,

leider funktioniert mein folgender Code zum hochladen einer binären Datei (z.B. zip, xlsx, …) nicht:

function UploadFileToProduct($ref, $filename)
{
  $httpheader = ['DOLAPIKEY: CTU9h....5p4G'];
  $url = "http://localhost/dolibarr/htdocs/api/index.php/documents/upload";
  
  $file=$_FILES[$filename]["tmp_name"];

  $data = array();
  $data["filename"] = basename($_FILES[$filename]["name"]);
  $data["modulepart"] = "product";
  $data["ref"] = $ref;
  $data["subdir"] = "";
  
  //Not working for Binary-Files
  //$data["filecontent"] = base64_encode(file_get_contents($_FILES[$filename]["tmp_name"]));

  //Also not working for Binary-Files... The file will destroy
  $fp=fopen($file,"rb");
  $binary = fread($fp, filesize($file));
  $data["filecontent"] = base64_encode($binary);  
  $data["fileencoding"] = "base64";

  $data["overwriteifexists"] = "1";
  $data["createdirifnotexists"] = "1";


  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  curl_setopt($curl, CURLOPT_HTTPHEADER, $httpheader);

  $result = curl_exec($curl);

  echo $result;
}

Ich vermute, dass beim encodieren mit BASE64 etwas nicht funktioniert. Was jedoch komisch ist, da z.B. eine PDF Datei funktioniert.

Es wäre spitze, wenn mir jemand einen Tipp geben könnte.

Christian