私は特定のAPIに画像をアップロードするためのスクリプトを書いています。 1つの画像をアップロードすることは問題ではなく、複数の画像をアップロードすることです。 APIのドキュメントでは、次の言葉:PHP - cURLファイルのアップロード
curl -v -s -u username:password \
-H "Content-Type: multipart/form-data" \
-H "Accept: application/vnd.de.xxx.api+json" \
-F "[email protected];type=image/jpeg" \
-F "[email protected];type=image/jpeg" \
-XPUT 'https://services.xxx.de/seller-api/sellers/123/ads/123/images'
マイスクリプト:
$ch = curl_init();
$images = array(
'image' => new CURLFile('PATH\1.jpg', 'image/jpeg', 'image')
);
curl_setopt($ch, CURLOPT_URL, 'https://services.xxx.de/seller-api/sellers/123/ads/123/images');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $images);
curl_setopt($ch, CURLOPT_USERPWD, 'USERNAME:PASSWORD');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Host: services.xxx.de',
'Content-Type: multipart/form-data',
'Accept: application/vnd.de.xxx.api+json'
));
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
問題は、私は新しいものをアップロードしていた場合、APIは、他の画像を削除することです。しかし、私はそのような複数のキーと同じキーを持つ配列を作成することはできません。
$images = array(
'image' => new CURLFile('PATH\1.jpg', 'image/jpeg', 'image'),
'image' => new CURLFile('PATH\2.jpg', 'image/jpeg', 'image')
);
そこで問題は、私はドキュメントにcurlコマンドのように同じインデックスを持つ複数のCURLFilesを設定することができる方法ですか?
は、それはあなたを助けるかもしれ、このポストhttps://stackoverflow.com/questions/44474192/upload-multiple-files-with-curlを参照してください。 –
いいえ、残念ながらapiが応答しないからです:{"errors":[{"key": "unsupported-form-element"}]} cURL-Fileのキーは "image"でなくてはならないことを意味します。 ..ありがとう! –
Curlコールをループしてみてください。 –