2011-11-14 54 views
2

我想使用PHP CURL將內容作爲參數發佈到文件中。在PHP中發佈數據Curl

數據得到發佈但Zoho打開一個空白文檔而不是我試圖打開的文檔。

我相信它是因爲我提供無效輸入$post_data['content']變量。

$post_data['content'] = "@/c:/xampp/htdocs/site/a.doc";

百會打開一個空白文檔時接收到的內容根據它的ZOHO API中說是空的。

我的代碼在下面給出以供參考。 <

?php 
     $post_data['content'] = "@/c:/xampp/htdocs/site/a.doc"; 
     $post_data['apikey'] = '[MY API KEY IS HERE]'; 
     $post_data['output'] = 'url'; 
     $post_data['filename'] = "a.doc"; 
     $post_data['id']  = '12345678'; 
     $post_data['format'] = "doc"; 
     $post_data['saveurl'] = 'https://localhost/researchPortal/tmp/save.php'; 
     $post_data['agentname'] = 'ZRemoteAgent'; 
     $post_data['mode'] = "normaledit"; 

     foreach ($post_data as $key => $value) 
     { 
      $post_items[] = $key . '=' . $value; 
     } 

     $post_string = implode ('&', $post_items); 



    //create cURL connection 
$curl_connection = curl_init('https://exportwriter.zoho.com/remotedoc.im'); 

//set options 
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); 
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1); 

//set data to be posted 
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string); 

//perform our request 
$result = curl_exec($curl_connection); 

       echo $result; 

//close the connection 
curl_close($curl_connection); 

?> 

回答

2

我的猜測是改變

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_data);

即時猜測它轉換成字符串使捲曲把文件上傳與魔法@ http://dtbaker.com.au/random-bits/uploading-a-file-using-curl-in-php.html

+0

嗯,我嘗試過了,我得到了ZOHO結束 'com.adventnet.iam.security.IAMSecurityException服務器錯誤:XSS_DETECTED' 我想我必須把文件的路徑,因爲ZOHO上傳文件。 – user478636

+0

我編輯了我的答案,我忽略了捲髮文件上傳。 – Zoxive

+0

感謝您的指導,我終於設法讓它工作。我使用了一個數組$ fields = array();而不是$ post_data – user478636