0

我使用 api 登录到 wikimedia 服务器并且无法上传我收到此错误:谢谢我收到此错误,

文件上传param文件不是文件上传;确保在 POST 中使用 multipart/form-data 并在 Content-Disposition 标头中包含文件名

这是图片上传的代码:

$postdata = "action=upload&format=php&filename=Image.jpg&file=@".realpath("Image.jpg")."&token=" . urlencode($_SESSION["csrftoken"]);

$app["curloptionscostun"] = array(
    CURLOPT_COOKIEFILE =>$CookieFile,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_USERAGENT => $app["useragent"],
    CURLOPT_POST => true,
    CURLOPT_HEADER => true,
    CURLOPT_HTTPHEADER => "Content-Type:multipart/form-data"
);

$ch = curl_init();
curl_setopt_array($ch, $app["curloptionscostun"]);
curl_setopt($ch, CURLOPT_URL, $app["apiURL"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$result = unserialize(curl_exec($ch));
if(curl_errno($ch)){
    echo "Error 004: " . curl_error($ch);
}
curl_close($ch);
4

1 回答 1

0

这是否更好?

curl_setopt(
    $ch,
    CURLOPT_POSTFIELDS,
    array(
        'action' =>'upload',
        'format'=>'php',
        'filename'=>'Image.jpg',
        'token' => urlencode($_SESSION["csrftoken"]),
        'file' => '@' . realpath('Image.jpg')
));
于 2016-02-29T22:28:46.023 回答