2011-11-14 14 views
2

PHP CURLを使用してコンテンツをファイルにパーマネントとして投稿しようとしています。PHP Curlでのデータの転記

データは公開されますが、Zohoは開いているものの代わりに空のドキュメントを開きます。

私は無効な入力を提供しているため、$post_data['content']という変数があります。

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

のZoho受信したコンテンツは、それが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_data);

に変更

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

は魔法でファイルをアップロードしていないカール作っているだろう@ http://dtbaker.com.au/random-bits/uploading-a-file-using-curl-in-php.html

+0

まあ、私はそれを試してみましたが、私はZohoの最後の 'com.adventnet.iam.security.IAMSecurityException上のサーバーのエラーを得た:私はZohoのは、ファイルをアップロードするので、私は、ドキュメントのパスを入れて持っていると思うXSS_DETECTED' 。 – user478636

+0

私は私の答えを編集し、私はカールファイルのアップロードを見落としていた。 – Zoxive

+0

私を導いてくれてありがとう、私はついにそれを働かせることができた。私は配列$ fields = array()を使いました。 $ post_dataの代わりに – user478636