Отправка пустого поля файла с CURLOPT_POSTFIELDS в многочастную форму - PullRequest
1 голос
/ 10 августа 2011

Я пытаюсь опубликовать в многочастную HTML-форму, используя CURLs CURLOPT_POSTFIELDS, но я не могу узнать, как опубликовать ее без файлов.

При тестировании формы в обычном браузере поле «Файл» может бытьпусто, «Имя» и «Сообщение» не могут.

Это работает:

$array = array(
 "Name" => "Jon",
 "Message" => "My package was broken, please send new.",
 "File" => "@look_omg_its_broken_omgomg_look_at_the_corners.jpg"
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $array);

Это не так:

$array = array(
 "Name" => "Jon",
 "Message" => "My package was broken, please send new.",
 "File" => ""
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $array);
$output = curl_exec($ch);

Этот последний вывод $ приводит к bool(ложь) Я также пробовал эти варианты значений, но безуспешно.

"File" => "@"
"File" => "@/"
"File" => NULL
"File"
"File" => array("")
"File" => array("filename" => "")

Кто-нибудь знает лучше?

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Без рефакторинга вашего бэкэнда или эмуляции отправки формы из нескольких частей вручную, я уверен, что вы не сможете решить вашу проблему с помощью одной CURLOPT_POSTFIELDS логики, см. Также:

Если вы настаиваете на попытке решить эту проблему, используя только CURL, я предлагаю вам проверить исходный код ext / curl .

1 голос
/ 10 августа 2011

Попробуйте просто полностью удалить поле File?Если он пуст, он не будет отправлен?

$array = array(
 "Name" => "Jon",
 "Message" => "My package was broken, please send new."
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $array);
$output = curl_exec($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...