我正在尝试通过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执行中,以便远程服务器认为它只是一个正常的POST文件?
不太相关,但如果它有帮助......我的$ 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>
答案 0 :(得分:0)
结束必须写入临时文件,发布该文件,然后删除临时文件。不像我希望的那样优雅,但它运作良好。感谢布伦顿·艾尔克(Brenton Alker)提供的链接......但是如其他帖子所述,这样做似乎不切实际。