Heim >Backend-Entwicklung >PHP-Tutorial >Wie sende ich eine Datei über cURL aus einem Formular-POST in PHP?

Wie sende ich eine Datei über cURL aus einem Formular-POST in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 17:08:02902Durchsuche

How to Send a File via cURL from a Form POST in PHP?

Datei über cURL aus Formular-POST in PHP senden

Beim Umgang mit Datei-Uploads aus einem Formular-POST in PHP ist es wichtig zu verstehen, wie das geht Verwenden Sie cURL, um die Datei zu senden. Formular-Markup enthält normalerweise ein Dateieingabefeld mit enctype="multipart/form-data".

Um eine Datei mit cURL mit einer POST-Anfrage zu senden, verwenden Sie den folgenden Ansatz:

  1. Dateipfad abrufen: Verwenden Sie $_FILES'image', um den temporären Dateipfad auf dem Server abzurufen.
  2. Bereiten Sie die cURL-Parameter vor: Erstellen Sie ein Array mit der Datei Details. Beispiel:
$post = array(
    'image' => '@' . $_FILES['image']['tmp_name']
);
  1. cURL initialisieren:

    $ch = curl_init();
  2. cURL-Optionen festlegen :

    curl_setopt($ch, CURLOPT_URL, 'http://example.com/curl_receiver.php');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  3. Anfrage ausführen:

    curl_exec($ch);
  4. cURL schließen:

    curl_close($ch);

Auf der Empfangsseite kann ein Skript wie curl_receiver.php die Datei empfangen:

if (isset($_FILES['image'])) {
    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'.$_FILES['image']['name']);
}
?>

Beispiel:

Formular:

<form action="script.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image" />
    <input type="submit" name="upload" value="Upload" />
</form>

Skript (script.php):

if (isset($_POST['upload'])) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://example.com/curl_receiver.php');
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'image' => '@' . $_FILES['image']['tmp_name']
    ));
    curl_exec($ch);
    curl_close($ch);
}

Empfängerskript (curl_receiver.php):

if (isset($_FILES['image'])) {
    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'.$_FILES['image']['name']);
}

Das obige ist der detaillierte Inhalt vonWie sende ich eine Datei über cURL aus einem Formular-POST in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn