我正在尝试通过 POST 将 XML 文件发送到远程服务器上的表单。我正在动态生成 XML 数据,并将其作为字符串存储在名为 $XmlData 的变量中。这是一个以我的开始标签开头的字符串(参见下面的示例)......所以这个字符串中没有“标题”。我可以轻松地将它作为 XML 文件写入临时目录中的服务器……但理想情况下,我只想将其作为文件发布,但没有添加创建文件的步骤(然后我必须删除后记)......下面是我认为应该允许我上传我的 XML 文件的代码,如果我真的先创建它......
$url = 'http://www.mydomain.com/path/to/form/process.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
curl_setopt($ch, CURLOPT_POST, true);
// same as <input type="file" name="xmlfileresource">
$post = array(
"xmlfileresource"=>"@/path/to/myfile.xml",
"action"=>"incomingXml",
"user"=>"JohnSmith",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
我的问题是:如何将我的 $XmlData 字符串的内容流式传输/blob/任何内容到此 cURL 执行中,以便远程服务器认为它只是一个正在发布的普通文件?
不是很相关,但万一它有帮助......我的 $XmlData 字符串可能看起来像这样:
<clientversion>
<component>
<type>module</type>
<name>resources</name>
<version>2.7.3</version>
<date>2012-09-01 02:18:33</date>
</component>
<component>
<type>module</type>
<name>staff</name>
<version>3.1</version>
<date>2011-04-01 07:12:48</date>
</component>
</clientversion>