我试图使用Curl将库存文件上传到亚马逊。我可以登录到我的帐户和库存上传页面,但似乎无法设置正确的路径,因为每次上传文件时,它指示从本次上传处理的记录数-零。我想我的路径错误。我使用的是“@/home/path-to-file/file-name.txt”,我做错了什么?上载成功,但系统似乎无法定位文件。
<?php
$URL = 'https://sellercentral.amazon.com/gp/item-manager/ezdpc/uploadInventory.html/ref=ag_invfile_mmap_home';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$page = curl_exec($ch);
$postFields['uploadType'] = 'PriceAndQty';
$postFields['uploadFileName'] = '@/home/path_to_file/inventory_file.txt';
$post = '';
foreach($postFields as $key => $value) {
$post .= $key . '=' . urlencode($value) . '&';
}
$post = substr($post, 0, -1);
curl_setopt($ch, CURLOPT_REFERER, $URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$page = curl_exec($ch); // make request
1条答案
按热度按时间y4ekin9u1#
据我所知,排队
如果要附加文件,则
$post
需要是数组。数组或字符串-这会产生不同的表单内容类型。您可以在PHP documentation中找到详细信息:
从PHP 5.2.0开始,如果文件是以@为前缀传递给这个选项的,那么value必须是一个数组。