如何透過 PHP 的 cURL 中的 Multipart/Form-Data 發送原始影像資料?

Susan Sarandon
發布: 2024-11-21 07:29:13
原創
915 人瀏覽過

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

透過PHP 的cURL 中的Multipart/Form-Data 傳送原始影像資料

與需要透過multipart/ 取得影像資料的API 互動影像資料的API時表單數據,正確發布圖像可能具有挑戰性。在 PHP 中,此過程涉及設定 multipart/form-data 標頭並處理原始影像資料。

表單結構

在客戶端,可以創建HTML 表單如圖所示:

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

服務器端處理

在伺服器端,發佈影像資料的PHP程式碼為:

$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;
登入後複製

使用 CurlFile 物件

在 5.6 之前的 PHP 版本中,使用 @$filePath 而不設定 CURLOPT_SAFE_UPLOAD 是可以的。但是,在 PHP 7 及更高版本中,需要使用 CurlFile 物件來安全地處理檔案上傳。這可確保原始影像資料正確傳輸。

以上是如何透過 PHP 的 cURL 中的 Multipart/Form-Data 發送原始影像資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板