0
我正在loged在維基媒體服務器的API,並不能維基媒體上傳 我得到這個錯誤: 謝謝,我得到這個錯誤回來,上傳圖片用PHP
文件上傳PARAM文件不是上傳文件;一定要使用的multipart/form-data的爲您的文章,包括在內容處理標頭
這裏是圖片上傳的代碼文件名:
$postdata = "action=upload&format=php&filename=Image.jpg&[email protected]".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);
你只是簡單地認爲什麼都不會出錯。如果curl_exec失敗,它將返回boolean false,然後嘗試解除序列化。試試'$ res = curl_exec(...); if($ res === false){die(curl_error($ ch));看看會發生什麼。 –
感謝我現在可以趕上錯誤 – webli
不要做那樣的文件上傳。 curl將接受一組key = value對,並且會檢測數組中的'@ filename'類型上傳。但它不會拆開預先創建的查詢字符串並檢查它是否爲@ filename-type結構。 –