1

我正在尝试使用Microsoft Graph API将存储在移动设备上的 pdf 传输到 Sharepoint 站点。该文件被读取为 base64 字符串,并且该字符串被设置为站点上文件的内容。

我已成功传输纯文本文件,但无法使用 pdf 传输。好像我只是在创建一个带有 .pdf 扩展名的纯文本文件(可以将扩展名更改为 .txt 并且该文件只包含原始文件的字符串版本)。

关于如何指定要传输的字符串是文件的编码版本而不仅仅是纯文本的任何想法?我假设在上传图像或任何非.txt文件时就是这种情况,因此任何相关建议都会有所帮助。

graphClient.api('/sites/{site-id}/drives/{drive-id}/root:/UploadedFile.pdf:/content')
            .header("content-type", "application/pdf")
            .put(fileContent)
            .then((response) => {
                console.log(response);
            });
4

1 回答 1

0

我解决了这个问题。我使用Buffer将 base64 字符串转换为二进制。

const fileContentAsBinary = Buffer.from(fileContent, "base64");
graphClient.api('/sites/{site-id}/drives/{drive-id}/root:/UploadedFile.pdf:/content')
            .header("content-type", "application/pdf")
            .put(fileContentAsBinary)
            .then((response) => {
                console.log(response);
            });
于 2020-05-22T09:22:16.340 回答