2013-02-06 78 views
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; 

文件被完全上傳,但在遠程服務器上,文件上傳後處理頁面重新加載(形式。 PHP),但是CURL文章只是重新開始。

我猜這是由於POST數據仍然存在?我該如何做到這一點,以便文件上傳一次,處理完成,然後完成?我已經設置FOLLOWLOCATION = 0,但沒有運氣

非常感謝,

回答

2

你怎麼知道它重新開始?如果您從您的迴音來推斷,這是呼應兩倍,你這樣寫:

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

,而不是這個

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //returns only result, not echoing 
+0

CURLOPT_RETURNTRANSFER TRUE返回轉讓,curl_exec的返回值的字符串()而不是直接輸出。 –

+0

這就是我的意思,如果是false或0,它會輸出響應,如果成功則返回true。現在我認爲buzzmonkey意味着別的東西,我不明白一個問題的解釋。 –

+0

非常感謝n-dru,通過返回數據而不是回顯 - 腳本不是浪費。使用$ httpCode = curl_getinfo($ ch,CURLINFO_HTTP_CODE);也確認文件上傳成功。多謝你們! – buzzmonkey