gpt4 book ai didi

javascript - 使用 Javascript 将文件发送到 OneDrive API

转载 作者:行者123 更新时间:2023-11-28 06:16:01 25 4
gpt4 key购买 nike

我在将文件上传到“OneDrive Api”时遇到一些问题。

我获取了上传文件的 URL:

 $.ajax({
type: "POST",
url: folderUrl,
headers: {
'Authorization': 'Bearer ' + access_token,
'Content-Type': 'application/json',
},
success: {.....}
});

有了它我就得到了“上传网址”。然后我读取并上传用户选择的文件(我需要对文件进行分段):

var fileInput = $("#file");
var fileList = fileInput[0].files;
var file = fileList[0];
content_length = file.size;
inicio = 0;
var blob = file.slice(inicio, content_length);

fileReader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
var result = evt.target.result;

$.ajax({
method: "PUT",
url: uploadUrl,
headers: {
'Authorization': 'Bearer ' + access_token,
'Content-Range': "bytes " + inicio + "-" + ((inicio + evt.target.result.length)-1) + "/" + content_length,
},
data: result,
success: function (result) {
console.log("subió");
},
error: function (error) {
console.log("falló");
console.log(JSON.stringify(error, null));
}
})
.done(function (msg) {
alert("Data Saved: " + msg);
});
}
};

fileReader.readAsBinaryString(blob);

当我上传内容如下的文本文件时

"Lorem ipsum dolor sit amet" (without special characters 'ñ', 'á', etc...)

它有效。

但是,当上传带有特殊字符(“ñ”、“á”、“¿”......)的文件时,会显示错误:

"code":"invalidRequest","message":"**Declared fragment length does not match the provided number of bytes**"

还有“.doc”、“.zip”等文件。

[编辑]:我注意到“á”更改为“¡”(例如)。

我需要帮助:/

谢谢

最佳答案

这听起来像是一个编码问题,我猜测罪魁祸首是readAsBinaryString。尝试切换到 readAsArrayBuffer 并查看是否有帮助。

This answer goes into a lot more details.

关于javascript - 使用 Javascript 将文件发送到 OneDrive API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35960615/

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