gpt4 book ai didi

visual-studio - 将 Document.getFileAsync 数据转换为 FormData 用于 Office 文件上传

转载 作者:行者123 更新时间:2023-12-05 01:17:17 28 4
gpt4 key购买 nike

我正在处理 Office 插件项目,我需要获取当前的 Office 文件并上传到我们的服务器。下面是从文件浏览器上传文件到我们的服务器

var fdata = new FormData();
fdata.append('data', file);
fdata.append('totalFileSizeBytes', file.size);
fdata.boundary = '----boundary';

xhr.send(fdata);

我通过函数获得了 Office 文件信息:Document.getFileAsync (https://dev.office.com/reference/add-ins/shared/document.getfileasync)

但我不知道如何将文件信息从 Document.getFileAsync 转换为 FormData。我尝试逐片读取文件信息,然后连接到数组并传递给 FormData,但没有成功。

最佳答案

答案有点晚了,但希望可以帮助 future 的人寻找这个 - 我浪费了一些时间试图弄清楚这个问题。

Document.getFileAsync 返回的 File 对象不能与 FormData 一起使用。此外,Microsoft 文档显示的内容并没有为您提供可以直接放入 FormData 中的文件。

首先,您必须按照 Microsoft 示例 (https://learn.microsoft.com/en-us/javascript/api/office/office.document?view=office-js#getfileasync-filetype--options--callback-) 将返回的切片组合到 docdata 数组中。但是,与其使用 charCodeAt 从中创建一个字符串,不如使用组合的 docdata 数组并执行以下操作:

const file = new File(
[new Uint8Array(docdata)],
'testfile.docx',
{ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }
);

然后您可以继续将其附加到您的 FormData:

const fd = new FormData();
fd.append('file', file);

关于visual-studio - 将 Document.getFileAsync 数据转换为 FormData 用于 Office 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50889328/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com