Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将带有CURLOPT_POSTFIELDS的空文件字段过帐到多部分表单_Php_Forms_Curl_Multipart - Fatal编程技术网

Php 将带有CURLOPT_POSTFIELDS的空文件字段过帐到多部分表单

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_

我试图使用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);
最后的$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列表上有一封旧电子邮件,基本上是这样写的:。祝您好运。