【发布时间】:2010-11-11 04:23:24
【问题描述】:
我正在使用 Amazon AIMS API 上传库存文件,但上传文件的 cURL 调用出现问题。文档非常有限,因此没有示例代码对此有所帮助。
这是我到目前为止的 cURL 调用:
// $FILENAME is filename of the CSV file being uploaded:
$inventory = fopen($FILENAME, 'r') or die("Can't open file!");
echo $inventory;
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_INFILE, $inventory);
curl_setopt($ch, CURLOPT_POSTFIELDS, '');
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filename));
curl_setopt($ch, CUROPT_PUT, TRUE);
$response = curl_exec($ch);
curl_close($ch);
我尝试将 $inventory 放入 CURLOPT_POSTFIELDS 并且没有 INFILE,但我得到了同样的错误。
在 XML 响应中,我得到了“NO_FILE_ATTACHED”,所以显而易见的问题是让文件附加到 XML 调用中。
我还尝试按照第一响应者所说的使用 php.net 上 curl_setopt 页面上的示例 #2 进行上传。
为此,我使用了以下代码:
$data = array('@/tmp/amazon_export.csv');
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
我收到了同样的NO_FILE_ATTACHED 回复。
有什么想法吗?
【问题讨论】: