我正在运行一个将文件上传到远程表单的脚本
//submit form
$form_data = array("file_upload" => "@file.xml;type=text/xml","otherkey" => "overvalue");
$ch = curl_init();
$form_url = 'http://www.domain.com/form.php';
curl_setopt($ch, CURLOPT_URL, $form_url);
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $form_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$postResult = curl_exec($ch);
echo $postResult;
文件正在上传完美,但是在远程服务器上,文件上传和处理后页面重新加载(form.php),但CURL帖子只是重新开始。
我猜这是因为POST数据仍然存在?我怎么能这样做,以便文件上传,处理,然后完成?我设置了FOLLOWLOCATION = 0但没有运气
非常感谢,
答案 0 :(得分:2)
你怎么知道它又开始了?如果你从回声中推断它,那么当你写这个时它会被回显两次:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //echoes result at init
而不是
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //returns only result, not echoing