我正在尝试使用 Microsoft Graph API 将 excel 文件上传到 OneDrive。excel 文件已上传,但问题是文件在 OneDrive 中已损坏。当我下载excel文件并与原始excel文件比较文件大小时,从OneDrive下载的excel文件大小很高。所以我认为问题是在上传文件时,它的字符集被转换为 UTF-8。
export async function uploadFile(accessToken) {
try {
const client = getAuthenticatedClient(accessToken);
var res;
var file = document.getElementById("inputFile").files[0];
var r = new FileReader();
r.onloadend = async function (e) {
let promise = new Promise((res, rej) => {
setTimeout(() => res("upload success"), 3000)
});
var data = e.target.result;
res = await client.api('/me/drive/root:/Test/Test.xlsx:/content')
.put(data);
let result = await promise;
}
r.readAsBinaryString(file);
return res;
}
catch (err) {
return err;
}
}
即使我尝试将内容类型和字符集设置为 ANSI,但文件仍然损坏。
res = await client.api('/me/drive/root:/Test/Test.xlsx:/content')
.headers("Content-Type", "text/plain; charset=windows-1252")
.put(data);
知道为什么文件损坏了吗?
我正在 Windows 10 中进行测试。