我试图使用CURLs CURLOPT_POSTFIELDS发布到多部分html表单,但我无法找到如何发布没有文件。
在普通浏览器中测试表单时,“文件”字段可以为空,“名称”和“消息”不能。
这有效:
$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(false) 我也尝试了这些价值观的变化,但没有成功。
"File" => "@"
"File" => "@/"
"File" => NULL
"File"
"File" => array("")
"File" => array("filename" => "")
任何人都知道更好吗?
答案 0 :(得分:1)
尝试完全删除File
字段?如果它是空的,则不会被提交?
$array = array(
"Name" => "Jon",
"Message" => "My package was broken, please send new."
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $array);
$output = curl_exec($ch);
答案 1 :(得分:1)
如果不重构您的后端或手动模拟多部分表单提交,我很确定您无法单独使用任何CURLOPT_POSTFIELDS
逻辑来解决您的问题,另请参阅:
如果您坚持单独使用CURL尝试解决此问题,建议您检查ext/curl source code。