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

それが再び始まることをどのように知っていますか?エコーから推測すると、次のように書くと 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 に答える