wie man eine Datei mit Curl mit PHP hochlädt [closed]

Lesezeit: 3 Minuten

wie man eine Datei mit Curl mit PHP hochladt closed
Hadidi44

Ich möchte wissen, wie man Dateien mit cURL oder irgendetwas anderem in PHP hochlädt. Ich habe schon oft in Google gesucht, aber keine Ergebnisse.

Mit anderen Worten, der Benutzer sieht eine Datei-Upload-Schaltfläche auf einem Formular, das Formular wird an mein PHP-Skript gesendet, dann muss mein PHP-Skript es an ein anderes Skript (z. B. auf einem anderen Server) erneut senden.

Ich habe diesen Code, um die Datei zu erhalten und hochzuladen

Code:

echo"".$_FILES['userfile']."";
$uploaddir="./";
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if ( isset($_FILES["userfile"]) ) {
    echo '<p><font color="#00FF00" size="7">Uploaded</font></p>';
    if (move_uploaded_file
($_FILES["userfile"]["tmp_name"], $uploadfile))
echo $uploadfile;
    else echo '<p><font color="#FF0000" size="7">Failed</font></p>';
}

Ich möchte, dass der Code die Datei an die Empfängerdatei sendet.

  • nicht mit “ftp”, ich möchte die Datei mit curl in $_FILES senden[‘userfile’]

    – Hadidi44

    4. März 2013 um 11:44 Uhr

  • Ähm… was nun? Wohin willst du es schicken? Was ist Ihr Zielsystem?

    – Bis Helge

    4. März 2013 um 11:47 Uhr

  • to php file (fragliche Quelle) – Zielsystem ist Linux

    – Hadidi44

    4. März 2013 um 12:05 Uhr

1646915045 563 wie man eine Datei mit Curl mit PHP hochladt closed
karthik

Verwenden:

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_name_with_full_path);
} else { // 
  $cFile="@" . realpath($file_name_with_full_path);
}
$post = array('extra_info' => '123456','file_contents'=> $cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);

Sie können sich auch beziehen auf:

http://blog.derakkilgo.com/2009/06/07/send-a-file-via-post-with-curl-and-php/

Wichtiger Hinweis für PHP 5.5+:

Jetzt sollten wir verwenden https://wiki.php.net/rfc/curl-file-upload Wenn Sie diesen veralteten Ansatz jedoch weiterhin verwenden möchten, müssen Sie festlegen curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);

  • Vielleicht ist es ein besserer Weg, die eingebaute Funktion von curl zu verwenden: php.net/manual/es/function.curl-file-create.php. Natürlich können Sie den Weg von POSTFIELDS verwenden und den vorangestellten Wert mit füllen @. Wie auch immer, die Antwort wird aus einer benutzerdefinierten Verwendung von curl aus einem Blog kopiert. Die richtige Antwort ist sagen, dass die @ char definiert es als Datei, nicht als var. $post enthält @filename.jpg zum Beispiel.

    – m3nda

    9. November 2013 um 23:26 Uhr


  • @erm3nda Das ist nur PHP 5.5+.

    – Jeremy Logan

    19. Juni 2014 um 21:16 Uhr

  • @fiXedd Ich verwende derzeit PHP 5.6 und verwende curl_file_create ist erforderlich (die von Karthik bereitgestellte Lösung funktioniert nicht). Der Code sollte also folgendermaßen aktualisiert werden: if function_exists('curl_file_create')) { $cFile = curl_file_create($dest); } else { $cFile = '@' . realpath($dest); }

    – Marek Roj

    15. September 2014 um 17:29 Uhr


  • Was ist extra_info => 123456 benutzt für?

    – Aaron Gillion

    26. April 2015 um 1:24 Uhr

  • Diese Lösung funktioniert nicht mehr in PHP 5.6, die Lösung besteht darin, eine Datei hinzuzufügen als: new CURLFile(realpath($fileName));

    – Michał Fraś

    29. Februar 2016 um 10:45 Uhr


987900cookie-checkwie man eine Datei mit Curl mit PHP hochlädt [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy