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

Susan Sarandon
Freigeben: 2024-11-21 07:29:13
Original
915 Leute haben es durchsucht

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>
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage