2

我正在尝试使用 PHP CURL 将文件中的内容作为参数发布。

数据已发布,但 Zoho 打开了一个空白文档,而不是我尝试打开的文档。

我相信这是因为我提供了无效的$post_data['content']变量输入。

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

根据 ZOHO API 中的说明,当收到的内容为空时,Zoho 会打开一个空白文档。

下面给出我的代码以供参考。<

?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);

?>
4

1 回答 1

2

我的猜测是改变

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_data);

我猜想把它转换成字符串是让 curl 不使用魔法上传文件@ http://dtbaker.com.au/random-bits/uploading-a-file-using-curl-in-php.html

于 2011-11-14T15:02:03.943 回答