Heim >Backend-Entwicklung >PHP-Tutorial >Wie lade ich Dateien mit cURL aus einem HTML-Formular-POST in PHP hoch?

Wie lade ich Dateien mit cURL aus einem HTML-Formular-POST in PHP hoch?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 14:09:02412Durchsuche

How to Upload Files Using cURL from a HTML Form POST in PHP?

Hochladen von Dateien über cURL aus einem Formular-POST in PHP

Übersicht

Diese Frage befasst sich mit der Handhabung von Datei-Uploads aus einer Formular-POST-Anfrage über cURL. Das Markup für das Formular ist einfach:

<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="image">

Datei-Uploads auf dem Server verarbeiten

Um Datei-Uploads auf der Serverseite zu verwalten, müssen Sie die globale Variable $_FILES von PHP verwenden. Diese Variable enthält eine Reihe von Informationen zu den hochgeladenen Dateien, einschließlich ihrer temporären Dateinamen und Originaldateinamen.

Der folgende Codeausschnitt zeigt, wie man $_FILES verwendet, um Informationen über das hochgeladene Bild zu erhalten:

if (isset($_POST['upload'])) {
  $tmpFileName = $_FILES['image']['tmp_name'];
  $originalFileName = $_FILES['image']['name'];
}

Senden der Datei über cURL

Um die Datei über cURL zu senden, müssen Sie die Option CURLOPT_INFILE angeben und festlegen Fügen Sie es dem temporären Dateinamen hinzu. Sie müssen außerdem die Option CURLOPT_UPLOAD auf 1 setzen. Beispiel:

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "http://example.com/upload.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_INFILE, $tmpFileName);
curl_setopt($curl, CURLOPT_UPLOAD, 1);

$curlResult = curl_exec($curl);

curl_close($curl);

Empfangen der Datei auf dem Server

Auf dem empfangenden Server können Sie den folgenden Code verwenden, um die hochgeladene Datei zu empfangen:

<?php
// Get the file from the request
$file = file_get_contents('php://input');

// Save the file to a temporary location
$tmpFileName = tempnam(sys_get_temp_dir(), 'phpexec');
file_put_contents($tmpFileName, $file);

// You can now process the file as needed

// Delete the temporary file
unlink($tmpFileName);
?>

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien mit cURL aus einem HTML-Formular-POST in PHP hoch?. 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