透過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中文網其他相關文章!