wordpressのメディアへ外部APIから取得したURLで画像をアップロードしたいのですが下記コードではアップロード出来ませんでした。どこが悪いのかご教授お願いします。
環境はローカルでMAMPを使用しています。
「Application Passwords」プラグインを利用して認証を通すようにしています。
現在のコードは以下のとおり
php
1 2$image_url = (APIで取得したURL); 3$file_name = "(APIで取得したファイル名)"; 4 5$base_url = 'http://localhost:8888/*****'; 6 7$postdata = file_get_contents($image_url); 8$file_info = new finfo(FILEINFO_MIME_TYPE); 9$file_mime = $file_info->file($file_name); 10 11$request_header = [ 12 'Authorization: Basic ' . base64_encode( '(ユーザー名)' . ':' . '(Application Passwords)' ), 13 'Content-Disposition: attachment; filename="%s"'. $file_name, 14 'Content-Type: ' . $file_mime, 15]; 16 17$curl = curl_init(); 18 19curl_setopt($curl, CURLOPT_URL, $base_url.'/wp-json/wp/v2/media'); 20curl_setopt($curl, CURLOPT_POST, true); 21curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); 22curl_setopt($curl, CURLOPT_HTTPHEADER, $request_header); 23curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 24 25$result = curl_exec($curl); 26 27curl_close($curl); 28
外部APIからの画像情報はURLの文字列で画像ファイルではありません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー