2016-06-22 14 views
0

Ich versuche, die Binärdatei zu speichern, die über CURL von einem anderen Server gesendet wird.Empfangen von Binärdatei über CURL gesendet

Die PHP-Uploader ich habe, ist:

<?php 
define("UPLOAD_DIR", "/tmp/"); 

if (!empty($_FILES["myFile"])) { 
    $myFile = $_FILES["myFile"]; 

    if ($myFile["error"] !== UPLOAD_ERR_OK) { 
     echo "<p>An error occurred.</p>"; 
     exit; 
    } 

    // ensure a safe filename 
    $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]); 

    // don't overwrite an existing file 
    $i = 0; 
    $parts = pathinfo($name); 
    while (file_exists(UPLOAD_DIR . $name)) { 
     $i++; 
     $name = $parts["filename"] . "-" . $i . "." . $parts["extension"]; 
    } 

    // preserve file from temporary directory 
    $success = move_uploaded_file($myFile["tmp_name"], 
     UPLOAD_DIR . $name); 
    if (!$success) { 
     echo "<p>Unable to save file.</p>"; 
     exit; 
    } 

    // set proper permissions on the new file 
    chmod(UPLOAD_DIR . $name, 0644); 
} 

Also ich diese als solche auf meiner Seite haben:

example.com/uploader.php

Auf Server-Nummer 2, I laufen der Befehl:

und dann überprüfe ich meine/tmp/Ordner für die Datei namens binary.jpg, aber es ist nicht Wo ist das Problem hier?

Danke.

+0

Ist dies ein Duplikat von http://StackOverflow.com/Questions/12667797/using-curl-to-Upload-Post-Data-mit- Dateien? –

+0

@NicolasBouvrette Nr. – bobb

+0

Können Sie den in diesem Post vorgeschlagenen Curl-Befehl ausprobieren, um zu sehen, ob Ihr Uploader funktioniert? –

Antwort

0

Es kann an der Stelle, wo Sie curl-Befehl ausführen. Zum Beispiel, wenn Sie in/home/student dann binär laufen. Jpg befindet sich am Ort/home/student/binary. Jpg Nachdem Sie den Befehl curl ausgeführt haben, erhalten Sie eine erfolgreiche Übertragungsnachricht?

0

In dem Code, if (!empty($_FILES["myFile"])) {, überprüfen Sie speziell das Feld myFile des Arrays $_FILES und dann Sachen. Der Befehl curl schlägt zwar nicht vor, dass die Binärdatei mit dem Namen myFile gesendet wird. Sie können den Namen der POST Felder in Ihnen eingeben curl Befehl und Problem wird hoffentlich gelöst werden. (Versuchen Sie auch, das gesamte $_POST und $_FILES Array in Code für Debugging-Zwecke zu drucken)

+0

Wie genau wäre das? So was? curl --request POST --data-binary "[email protected]" http://example.com/uploader.php – bobb

+0

Ich habe curl --request POST --data-binary [email protected] http://example.com/uploader.php, kein Ergebnis. Das ist so frustrierend, es muss so einfach sein? – bobb

Verwandte Themen