0

我正在运行一个将文件上传到远程表单的脚本

  //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 但没有运气

非常感谢,

4

1 回答 1

2

你怎么知道它又开始了?如果你从你的回声中推断它,它会在你写这个时被回显两次:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //echoes result at init

而不是这个

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //returns only result, not echoing
于 2013-02-06T10:24:39.473 回答