Файл PPT поврежден — API REST для одного диска

Не знаю почему, но по причинам, когда я загружал файлы PPT или PPTX, используя приведенный ниже код, этот файл каким-то образом поврежден. Когда я пытаюсь просмотреть этот файл на одном диске, он показывает мне ошибку «Извините, мы не открыли эту презентацию, потому что столкнулись с проблемой. Чтобы просмотреть или отредактировать эту презентацию, откройте Microsoft PwerPoint».

Все отлично работает, когда я загружаю PDF. Загрузка файлов ppt из «Расширения Chrome Postman» также работает нормально. Так что здесь должна быть какая-то проблема с моим кодом, но я не могу понять это.

$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();

этот код использует жрет 4.0

—————— Редактировать ——

Я также пытался с более новыми версиями guzzle (6. *), но с этим я просто не могу загрузить любой файл.

При использовании ‘r’ для fopen это дает.

curl_setopt_array (): не может представлять поток типа Output в виде 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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]