我用的是官方this上传文件的脚本。但响应返回 错误:- 文件名不能为空
我只更改了脚本中的参数,没有像他们说的那样更改任何其他内容。比如
$networkid = "RA";
$apikey = "XXXX";
$offerid = "2207";
$creativetype = "file";
$filename = "JetSmartShopping.zip";
来自脚本的响应
Array (
[request] => Array (
[Target] => OfferFile [Format] => json
[Service] => HasOffers
[Version] => 3
[Method] => create
[NetworkToken] => XXXX
[NetworkId] => RA
[data] => Array (
[offer_id] => 2207
[type] => file
[display] => JetSmartShopping.zip
)
[return_object] => 1
[JetSmartShopping_zip] => @JetSmartShopping.zip
)
[response] => Array (
[status] => -1
[httpStatus] => 200
[data] =>
[errors] => Array (
[0] => Array (
[err_code] => 1
[err_msg] => Filename cannot be blank.
[attribute_name] => filename [publicMessage] => Could not create offer file.
)
)
[errorMessage] => Could not create offer file.
)
)
但是如果我使用 curl-command 那么它就可以工作
curl --verbose --globoff -X POST -F "xyz.zip=@xyz.zip" "http://api.hasoffers.com/v3/OfferFile.json?Method=create&NetworkToken=XXXX&NetworkId=RA&data[offer_id]=1899&data[type]=file&data[display]=xyz.zip&return_object=1"
我已经检查了这个脚本的一些要求
要上传的文件应与脚本所在的路径相同。
尝试了一些来自 stackoverflow 的其他解决方案。
给文件取不同的名字
但它们都不适用于此脚本。
但是同一个文件正在使用命令和使用他们的网站上传。
谁都能想出来。提前致谢。
最佳答案
PHP 脚本说(在“不要更改此处下方的任何内容”行下: $fields[$filename] = "@{$filename}";
但是在您的请求中我读到了这一行: [JetSmartShopping_zip] => @JetSmartShopping.zip
应该是: [JetSmartShopping.zip] => @JetSmartShopping.zip ?
您是否编辑了脚本中禁止的部分?
关于php - 无法使用 curl :Filename cannot be blank 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085588/