Как скачать вложение из Outlook API с помощью PHP Laravel? - PullRequest
3 голосов
/ 03 ноября 2019

Я хочу скачать вложение. Я достиг вложения с просьбой:

/me/message/{message_id}/attachments/{attachment_id}

Ответ:

[_propDict:protected] => Array
        (
            [@odata.context] => https://graph.microsoft.com/v1.0/$metadata#users('username')/messages('messageId')/attachments/$entity
            [@odata.type] => #microsoft.graph.fileAttachment
            [@odata.mediaContentType] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
            [id] => xxx
            [lastModifiedDateTime] => 2019-11-02T17:50:52Z
            [name] => xxx.xlsx
            [contentType] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
            [size] => 33459
            [isInline] => 
            [contentId] => f_k2hv435z0
            [contentLocation] => 
            [contentBytes] => GuzzleHttp\Psr7\Stream Object
                (
                    [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #374
                    [size:GuzzleHttp\Psr7\Stream:private] => 
                    [seekable:GuzzleHttp\Psr7\Stream:private] => 1
                    [readable:GuzzleHttp\Psr7\Stream:private] => 1
                    [writable:GuzzleHttp\Psr7\Stream:private] => 1
                    [uri:GuzzleHttp\Psr7\Stream:private] => php://temp
                    [customMetadata:GuzzleHttp\Psr7\Stream:private] => Array
                        (
                        )
                )
        )
)

Нет sourceUrl, но contentBytes. Могу ли я сделать это с contentBtyes и как.

1 Ответ

3 голосов
/ 03 ноября 2019

Я думаю, $object->getContentBytes() должно работать для вас.

UPD: Если вы хотите загрузить содержимое в виде файла, вы можете сделать что-то похожее на это:

$fileName = "download.txt";
$contents =  $object->getContentBytes(); // base64_decode() here if needed

header("Content-type: text/plain"); // Or any other format
header("Content-Disposition: attachment; filename=" . $fileName);
print $contents;
die;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...