Heim >Backend-Entwicklung >PHP-Tutorial >Wie sende ich Rohbilddaten über Multipart/Form-Data in cURL für PHP?

Wie sende ich Rohbilddaten über Multipart/Form-Data in cURL für PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-21 07:29:13985Durchsuche

How to Send Raw Image Data via Multipart/Form-Data in cURL for PHP?

Senden von Rohbilddaten über Multipart/Form-Data in cURL für PHP

Bei der Interaktion mit einer API, die Bilddaten über Multipart/ Formulardaten kann das korrekte Posten des Bildes eine Herausforderung sein. In PHP umfasst dieser Prozess das Festlegen von Multipart-/Formulardaten-Headern und die Verarbeitung von Rohbilddaten.

Formularstruktur

Auf der Clientseite kann das HTML-Formular erstellt werden wie gezeigt:

<form action="http://myServerURL" method="POST" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="Submit">
</form>

Serverseitige Verarbeitung

Auf der Serverseite wird die PHP-Code zum Posten der Bilddaten wäre:

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
$filePath = '/path/to/image.png';
$fields = [
    'name' => new \CurlFile($filePath, 'image/png', 'filename.png')
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieJar);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Get the response and check the content type
$response = curl_exec($ch);
$requestContentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
echo "<br>request Content Type was:".$requestContentType."<br>";

curl_close($ch);

echo "<br><b>SERVER POST IMAGE RESPONSE:</b><br>";
echo $response;

Verwendung eines CurlFile-Objekts

In PHP-Versionen vor 5.6 würde die Verwendung von @$filePath ohne die Einstellung von CURLOPT_SAFE_UPLOAD funktionieren . In PHP 7 und höher ist es jedoch erforderlich, ein CurlFile-Objekt zu verwenden, um Datei-Uploads sicher zu verarbeiten. Dadurch wird sichergestellt, dass die Rohbilddaten korrekt übertragen werden.

Das obige ist der detaillierte Inhalt vonWie sende ich Rohbilddaten über Multipart/Form-Data in cURL für 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