Heim >Backend-Entwicklung >PHP-Tutorial >Wie lade ich Dateien mit cURL aus einem HTML-Formular-POST in PHP hoch?
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">
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']; }
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);
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!