Sembra che il problema sia riferito all'omissione di alcuni parametri dell'header ma posso dare un conferma al 100%.


Ti potrei dire ci fare delle prove inserendo appunto i dati dell'header, in una situazione simile a questa:

codice:
function sendFile2Server($nomefile, $codice, $anno)
{

    global $ip;
    $args1['file'] = new CurlFile($nomefile, 'image/png');
    $args1["path"] = "SCANNER";
    $args1["codice"] = "4";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://$ip/vinaccia/vina_receive_scansione.php");
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args1);
    $result = curl_exec($ch);
    header('Cache-Control: public');
    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="' . $nomefile . '"');
    header('Content-Length: ' . strlen($result));
    curl_close($ch);
    return $result;
}