Mục*_*ồng 3 ms-office visual-studio excel-addins word-addins office-js
我正在开发 Office 加载项项目,我需要获取当前的 Office 文件并上传到我们的服务器。以下是将文件从文件浏览器上传到我们的服务器
var fdata = new FormData();
fdata.append('data', file);
fdata.append('totalFileSizeBytes', file.size);
fdata.boundary = '----boundary';
xhr.send(fdata);
Run Code Online (Sandbox Code Playgroud)
我通过函数获取 Office 文件信息: Document.getFileAsync (https://dev.office.com/reference/add-ins/shared/document.getfileasync)
但我不知道如何将文件信息从 Document.getFileAsync 转换为 FormData。我尝试逐片读取文件信息,然后连接到一个数组并传递给 FormData,但没有成功。
小智 6
答案有点晚了,但希望可以帮助未来寻找这个的人 - 我浪费了一些时间试图弄清楚这一点。
返回的 File 对象Document.getFileAsync
不能与 FormData 一起使用。此外,Microsoft 文档显示的内容并没有为您提供可以直接放入 FormData 中的文件。
首先,您必须docdata
按照 Microsoft 示例所示组合返回到数组的切片(https://learn.microsoft.com/en-us/javascript/api/office/office.document?view=office-js #getfileasync-文件类型--选项--回调- )。但是,您不需要使用创建字符串charCodeAt
,而是只需使用组合docdata
数组并执行以下操作:
const file = new File(
[new Uint8Array(docdata)],
'testfile.docx',
{ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }
);
Run Code Online (Sandbox Code Playgroud)
然后您可以将其附加到您的 FormData 中:
const fd = new FormData();
fd.append('file', file);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1072 次 |
最近记录: |