как предотвратить загрузку локона - PullRequest
0 голосов
/ 16 октября 2010

Есть много вопросов и руководств о том, как заставить cURL загружать файлы, но сегодня я спрашиваю, как НЕ заставить его это делать.

В соответствии с документацией по параметрам curlphp.net, curl "знает", чтобы попытаться загрузить файл, когда параметр начинается с "@", затем путь к локальному файлу

Это все хорошо, но что делать, если вам нужно POSTчто-то с буквенным текстом, который начинается с @ и НЕ хочет делать загрузку?

Я отправляю данные поста как это

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param_array);

и мои параметры выглядят так (усечено дляпростота)

Array
(
    [action] => "edit"
    [title] => "my_pagename"
    [text] => "@disabled"
)

(прежде чем кто-либо спросит, да, это для вызова API MediaWiki, но это не имеет значения)

прямо сейчас, curl_exec просто возвращает false (сбойя думаю, что найти файл с именем «disabled» для публикации)

мой путь к коду для остальных параметров, и фактическое POST на 100% проверено нормально, и работает в течение более года, поэтомуя на 100% уверен, что эта загрузка "ошибка"

Ответы [ 3 ]

3 голосов
/ 16 октября 2010

Я считаю, что если вы отправляете запрос в виде строки, а не массива, он должен работать:

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param_array));

Это что-то вроде хака, к сожалению ...

1 голос
/ 16 октября 2010

вы пробовали urlencode на этом?я имею в виду "%40disabled"

0 голосов
/ 16 октября 2010

Полностью выстрел в темноте, но вы можете попытаться избежать его с помощью \

...