はまったので忘備録
公式によると以下curlコマンドで画像アップができます。
curl -X POST "https://upload.imagekit.io/api/v1/files/upload" \
-u your_private_api_key: \
-F 'file=iVBORw0KGgoAAAAN' \
-F 'fileName=hoge.png'
PHPで書き直すと以下のようになります
$POST_DATA = array(
'file' => 'iVBORw0KGgoAAAAN',
'fileName' => "hoge.png",
);
$curl=curl_init("https://upload.imagekit.io/api/v1/files/upload");
curl_setopt($curl,CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $POST_DATA);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl,CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_USERPWD, $imagekit_privatekey.":");
curl_setopt($curl,CURLOPT_COOKIEJAR, 'cookie');
curl_setopt($curl,CURLOPT_COOKIEFILE, 'tmp');
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, TRUE);
$output= curl_exec($curl);
crulの-u
コマンドになじみがなくてよくわからなかったのですがどうやらこれはbasic認証らしいです。
phpのcurlでbasic認証を通す場合はcurl_setopt($curl, CURLOPT_USERPWD, $imagekit_privatekey.":");
のように記述します
またこの記事同様デフォルトでランダム文字列が入ってしまうのですが、外す場合にはuseUniqueFileName
をfalseにする必要があります
ただ、今回はmultipart/form-data
での送信のため、http-build-query
などを通さず、直接送信しているため
$POST_DATA = array(
'file' => 'iVBORw0KGgoAAAAN',
'fileName' => "hoge.png",
'useUniqueFileName' => false
);
とすると、正しく動作しません。
正確には
$POST_DATA = array(
'file' => 'iVBORw0KGgoAAAAN',
'fileName' => "hoge.png",
'useUniqueFileName' => 'false'
);
と文字列リテラルで渡す必要があります。
これで正しくアップロードできます
ついにURLのogp出力に対応した
2021年9月1日(水) 2時20分35秒 | 346 viewなるべく楽にUnityからPlayCanvasへヒエラルキーごと3Dモデルを移植する
2021年8月17日(火) 2時29分33秒 | 292 viewnuxt.jsでテキストボックスクリック時にテキストを全選択する
2021年6月1日(火) 14時2分16秒 | 78 viewmicroCMSにプリセットで入っているimgixを利用してお手軽に動的OGPを設定する
2021年9月6日(月) 14時33分9秒 | 74 viewNCMBのスクリプト機能はGETでいいなと思ってもPOSTで設定しておこう
2021年3月6日(土) 18時29分49秒 | 28 view