PHP使用curl post将文件从服务器上传到另一台服务器

时间:2013-11-28 05:56:29

标签: php post curl upload

我需要一些帮助。

我有一个生成xml文件的php脚本,然后我需要使用POST将其提交给另一台服务器。 XML文件没问题,因为我可以使用命令行中的curl手动上传它。

我的代码是:

$file = 'temp.xml';
file_put_contents($file, $output);
$post = array('extra_info' => '123456','file_contents'=>'@'.$file);
$url = "<URL>";
$chlead = curl_init();
curl_setopt($chlead, CURLOPT_USERPWD, "<USER>:<PASSWORD>");
curl_setopt($chlead, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($chlead, CURLOPT_URL, $url);
curl_setopt($chlead, CURLOPT_VERBOSE, 1);
curl_setopt($chlead, CURLOPT_POST,1);
curl_setopt($chlead, CURLOPT_POSTFIELDS, $post);
curl_setopt($chlead, CURLOPT_RETURNTRANSFER, false);
$response = curl_exec($chlead);

我可以通过以下方式手动将文件上传到正确处理的服务器:

curl -v -k -u <USER>:<PASSWORD> -X POST --upload-file temp.xml <URL>

我缺少什么?我使用的是PHP 5.2.17。此外,如果有一种方法可以在不将xml文件写入磁盘的情况下执行此操作,那将很有用。

由于

1 个答案:

答案 0 :(得分:0)

检查目标,文件网址路径是否正确或使用绝对路径