cURLリクエストによって.csvファイルをRESTful APIにアップロードするのが難しい。私は成功応答(200 OK)を受けていますが、何のデータが提出されているように見えるん:cURL csvファイルの送信がOKステータスを返すが、データがアップロードされない
{
"meta": [
],
"code": 200,
"object": "csvfile",
"data": [
],
"time": 1472464675
}
これは、次のリクエストで行われています。私はCURL_SETOPTS
のそれぞれを打破するためにコメントを追加しました:
// create a CURLFile object
$cfile = curl_file_create($fileName,'text/csv', $fileName);
// start curl request
$curl = curl_init();
// assign POST data
$data = array('file' => $cfile);
// specify POST request
curl_setopt($curl, CURLOPT_POST, true);
// basic auth
curl_setopt($curl, CURLOPT_USERPWD, getenv('USERNAME').':'.getenv('PASSWORD'));
// destination URI
curl_setopt($curl, CURLOPT_URL, 'https://api.arestfulapi.com');
// associate curlfile
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// since we're using PHP 5.6 we need to enable CURLOPT_SAFE_UPLOAD
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
// return options
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_STDERR, $out);
$response = curl_exec($curl);
$err = curl_error($curl);
// debugging
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo("CURL RESPONSE: ");
echo $response;
}
curl_close($curl);
私は完全にCURLfileオブジェクト内$postname
フィールドの重要性を理解していない言及する必要があります。さらに、コンストラクションのドキュメント(http://php.net/manual/en/class.curlfile.php)で示されているように、私が何をしているのかが完全にはわかっていません。assign POST data
注:私はこれをLaravelアプリケーションで作成していますが、Guzzleクライアントを認識していますが、このように問題を提示することを選択しました。一般的なcURL問題がサポートされています。問題は私のcURLファイルの作成とは関係がありますが、それを突き止めるのに何時間も費やされていると思います。
この問題の原因は何ですか?