PPT文件损坏 - 一个驱动器REST API

时间:2015-06-08 05:13:33

标签: php laravel-5 guzzle onedrive

不确定为什么,但由于我使用下面的代码上传PPT或PPTX文件的原因,文件以某种方式被破坏。当我尝试在一个驱动器中查看该文件时,它显示错误“抱歉,我们无法打开此演示文稿,因为我们遇到了问题。要查看或编辑此演示文稿,请打开它是Microsoft PwerPoint。”

上传PDF时,一切正常。从'Chrome Postman Extension'上传ppt文件也可以正常工作。所以我的代码一定存在问题,但我无法弄清楚。

$client = new \GuzzleHttp\Client();
$response = $client->post(
   'https://apis.live.net/v5.0/me/skydrive/files?access_token=' . $access_token,
   [
    'headers' => ['content-type' => 'multipart/form-data'],
    'body' => [
    'file' => fopen($path, 'r+')
    ]
   ]
  );
echo $response->json();

此代码使用的是guzzle 4.0

------------------编辑-----

我也试过更新版本的guzzle(6. *),但是我只是无法上传任何文件。

当使用'r'表示fopen时,它会给出。

curl_setopt_array():无法将输出类型的流表示为STDIO FILE *

并使用任何其他模式提供

每个视频流必须具有可读性

$client = new GuzzleHttp\Client(['debug'=>true]);
echo $client->post(
        'https://apis.live.net/v5.0/me/skydrive/files?'.$token,
        [
            //'headers' => $headers,
            'multipart' => [
                [
                    'name' => 'file',
                    'contents' => fopen("J:/project data/MSL 4/Alcon MSL-Add-ons Jan 30.pdf", 'rb+'),
                ]
            ]
        ]

    );

0 个答案:

没有答案