下記問題、ご存知の方がいらっしゃいますか?
環境によって、同じソースコードを実施して結果が違います、原因不明です。
環境が違うけど、マルチパート形式不正のメッセージが出たのがおかしい。。。
-
Windows環境では問題なくアップロードしました。
-
Linux環境では失敗しました。メッセージは以下↓↓↓
-
アップロードするHTTPリクエストの形式が正しくありません。HTTPリクエストはマルチパート形式である必要があります。
※$fData はPDFファイルのバイナリデータです。
$crlf = PHP_EOL;
$boundary = uniqid('------------------pf');
$url = $params['kin_domain']. '/k/v1/file.json';
$data = implode($crlf, [
'--'. $boundary,
'Content-Disposition: form-data; name="file"; filename="'. $fName .'"',
'Content-Type: application/pdf',
$crlf. $fData,
'--'. $boundary .'--'. $crlf,
]);
$header = [
'Content-Type: multipart/form-data; boundary='. $boundary,
'Content-Length: '. strlen($data),
'X-Cybozu-API-Token: '. $params['kin_token'],
];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$result = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);