Php 将带有CURLOPT_POSTFIELDS的空文件字段过帐到多部分表单
我试图使用CURLs CURLOPT_POSTFIELDS发布到一个多部分的html表单,但是我找不到如何在没有文件的情况下发布它 在普通浏览器中测试表单时,“文件”字段可以为空,“名称”和“消息”不能为空 这项工作:Php 将带有CURLOPT_POSTFIELDS的空文件字段过帐到多部分表单,php,forms,curl,multipart,Php,Forms,Curl,Multipart,我试图使用CURLs CURLOPT_POSTFIELDS发布到一个多部分的html表单,但是我找不到如何在没有文件的情况下发布它 在普通浏览器中测试表单时,“文件”字段可以为空,“名称”和“消息”不能为空 这项工作: $array = array( "Name" => "Jon", "Message" => "My package was broken, please send new.", "File" => "@look_omg_its_broken_omgomg_
$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);
最后的$output将导致bool(false)
我也尝试过这些不同的价值观,但没有成功
"File" => "@"
"File" => "@/"
"File" => NULL
"File"
"File" => array("")
"File" => array("filename" => "")
有谁知道得更清楚吗?试着完全删除
文件
字段?如果为空,则不会提交
$array = array(
"Name" => "Jon",
"Message" => "My package was broken, please send new."
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $array);
$output = curl_exec($ch);
如果不重构您的后端或手动模拟多部分表单提交,我敢肯定您将无法单独使用任何
CURLOPT_POSTFIELDS
逻辑解决您的问题,另请参见:
如果您坚持只使用CURL来解决这个问题,我建议您检查。问题是后端正在检查密钥,如果“File”字段丢失,它将生成一个stacktrace,说明引用空对象的内容。所以不能这样做:(必须在“文件”字段中发送,但它的值必须表示不会发送任何文件。这必须是可能的,因为webform可以这样做。(没有其他异步帖子或任何东西)啊。这以前被问过,没有结果(请参阅)。我认为您必须手动构建多部分/表单数据体,正如@Alix Axel所指出的。cURL列表上有一封旧电子邮件,基本上是这样写的:。祝您好运。