ローカルファイルをhttpsURLにアップロードするためのRESTAPIをテストしようとしています。私は現在、curlを使用しています。問題は、curlのPOSTがPUT(http://curl.haxx.se/docs/manpage.html)に変換されていることです。コマンドラインからテストするには、次を使用しています。
curl -H "Content-Type:application / json" -H "Authorization:Bearer XXXXXXXXXXXXXXXYYYYYzzzzzz" -H "Accept-Version:〜1" -H "Except:100-continue" -H "Accept-Version:〜1"- T "somefile.pdf" "https://abc-xyz.co/docs"
出力:
{"code":"BadMethod","message":"/docs does not support PUT"}
私のphpコード:
$url = '"https://abc-xyz.co/docs';
$filepath = '/Users/me/Documents/somefile.pdf'; //mac path
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('Authorization: Bearer XXXXXXXXXXXXXXXYYYYYzzzzzz', 'Accept-Version: ~1', 'Except: 100-continue');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$file = "@".$filepath;
curl_setopt($ch, CURLOPT_POSTFIELDS,$file);
$response = curl_exec($ch);
if(!CURL_ERROR($ch))
{
echo"\n The output is:".$response;
}
else
{
echo "\nUpload failed ".curl_error($ch);
exit;
}
curl_close($ch);
出力:解析エラーが発生します。
誰かが私に3つのことを教えてもらえますか?
- curlを使用してhttpsのPOSTを実行できますか?はいの場合、どのように?いいえの場合、私のアプローチはどうあるべきですか?
- PHPでファイルパス名を渡す方法は?「@」。$filepathも試しましたが、それでも気に入らないです。
- ファイルのアップロードタイプをpdfのみに制限したい場合、mimeタイプを使用する必要がありますか?(アプリケーション/ pdf ????)
ありがとう、DR