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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 09:16:02672Durchsuche

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

Datei über cURL aus Formular-POST in PHP senden

Das Verarbeiten von Datei-Uploads aus Formularbeiträgen ist eine häufige Aufgabe in der API-Entwicklung. In dieser Frage wird untersucht, wie eine Datei über cURL mithilfe eines PHP-Skripts gesendet wird.

Das HTML-Formular enthält ein Eingabefeld zum Hochladen von Dateien:

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

Das serverseitige PHP-Skript (script.php ) prüft zunächst, ob auf die Schaltfläche „Hochladen“ geklickt wurde:

if (isset($_POST['upload'])) {
  // Handle file upload with cURL
}

Um die Datei mit cURL zu senden, müssen wir die folgenden Parameter festlegen:

  • CURLOPT_URL: Die URL von das Remote-Datei-Upload-Ziel
  • CURLOPT_UPLOAD: 1 (Zeigt an, dass die Anfrage einen Datei-Upload enthält)
  • CURLOPT_INFILE: Der Dateizeiger der temporären Datei, die auf den Server hochgeladen wurde
  • CURLOPT_INFILESIZE : Die Größe der Datei in Bytes

Hier ist ein Beispiel für einen cURL-Codeausschnitt, der die Datei sendet:

$localFile = $_FILES['image']['tmp_name']; 
$url = "https://example.com/file_upload.php";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@' . $localFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

Auf der Empfängerseite sollte das Skript den Datei-Upload und verarbeiten Bewahren Sie es entsprechend auf. Hier ist ein Beispiel:

$file = $_FILES['file'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
move_uploaded_file($fileTmpName, '/path/to/uploads/' . $fileName);

Das obige ist der detaillierte Inhalt vonWie sende ich eine Datei über cURL aus einem PHP-Formular-POST?. 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