PHP용 cURL의 Multipart/Form-Data를 통해 원시 이미지 데이터 전송
multipart/를 통해 이미지 데이터를 기대하는 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 객체 사용
PHP 5.6 이전 버전에서는 CURLOPT_SAFE_UPLOAD를 설정하지 않고 @$filePath를 사용하면 작동합니다. 그러나 PHP 7 이상에서는 파일 업로드를 안전하게 처리하기 위해 CurlFile 객체를 사용해야 합니다. 이렇게 하면 원시 이미지 데이터가 올바르게 전송됩니다.
위 내용은 PHP용 cURL에서 Multipart/Form-Data를 통해 원시 이미지 데이터를 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!