【发布时间】:2009-05-22 12:04:09
【问题描述】:
我正在尝试实现的 API 需要上传包含命令的 XML 文件。 直接的方法是生成文件的内容,将其写入文件系统并使用 curl 上传到 Web 服务器。
我想要完成的是通过使用 php 的临时协议处理程序来跳过编写部分。示例代码如下:
<?php
$fp = fopen("php://temp", "r+");
$request = 'some xml here';
fwrite($fp, $request);
rewind($fp);
$input_stat = fstat($fp);
$size = $input_stat['size'];
$url = "http://example.com/script.php";
$ch = curl_init();
$filename = $_POST[cert_file] ;
$data['file'] = "@xml.xml";
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_INFILESIZE,$size);
curl_setopt($ch,CURLOPT_INFILE,$fp);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
$error = curl_error($ch);
echo 'result:'.$result."\n";
echo 'error:'.$error."\n";
curl_close($ch);
?>
不幸的是,这不起作用。 Tcpdump 显示没有发送请求。 更新:我得到的结果是:
结果:
错误:创建表单数据失败
有没有人知道如何使用 PHP 将文本作为文件即时上传?
【问题讨论】:
-
您找到解决方案了吗?我有完全一样的问题。我正在尝试上传已经在缓冲区中的文件的内容。我也不想将其写回文件以便将其作为文件上传。
-
我也有同样的问题 :(
-
我仍然没有解决方案。
标签: php post file-upload curl