无法使用 curl 上传文件:文件名不能为空


unable to upload file using curl :Filename cannot be blank

我正在使用官方此脚本上传文件。 但响应返回错误:- 文件名不能为空

正如他们所说,我只更改了脚本中的参数,没有其他内容。 如

$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 命令,那么它可以工作

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"

我已经检查了此脚本的以下一些要求

  1. 要上传的文件应位于脚本所在的同一路径中。

  2. 尝试了堆栈溢出中的其他一些解决方案。

  3. 为文件指定不同的名称

但他们都不适合这个剧本。

但是相同的文件正在使用命令和使用他们的网站上传。

任何人都能弄清楚。提前谢谢。

PHP 脚本说(在"不要更改下面的任何内容"行下):$fields[$filename] = "@{$filename}";

但是在您的请求中,我读到了这一行:[JetSmartShopping_zip] => @JetSmartShopping.zip

应该是:[捷智购物.zip] => @JetSmartShopping.zip?

您是否编辑了脚本的禁止部分?