Я хотел загрузить файл 1G с помощью надстройки Excel. но я столкнулся с некоторыми проблемами, когда использовал Office.context.document.getFileAsync ().
Ожидаемое поведение
Возвращает весь файл документа частями до 4194304 байта (4 МБ). Я надеюсь, что файл может быть успешно загружен.
Текущее поведение
Но когда файл срезался до No.256, произошла ошибка. ErrorCode: 12007.ErrorMessage: диалоговое окно уже открыто из этого окна хоста, поэтому операция завершилась неудачно.
errorImg
Шаги для воспроизведения или живой пример
ошибка произошла в функции getSlice
function uploadRun() {
if (isCheckout) {
$("#msg").empty();
$('#uploadRun').addClass('disabled');
$('#uploadCancel').addClass('disabled');
$('#saveTemp').addClass('disabled');
} else {
$("#msg").empty();
$('#footer-div .btn-primary').attr('disabled', true);
}
Office.context.document.getFileAsync(
Office.FileType.Compressed,
{ },
function (result) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
var myFile = result.value;
var state = {
file: myFile,
counter: 0,
sliceCount: myFile.sliceCount,
fileName: "",
result: true,
code: "",
msg: ""
};
getSlice(state);
} else {
showMessage(JSMsg["OfficeAddin.msg.00102"], false);
}
});
}
function getSlice(state) {
state.file.getSliceAsync(state.counter, function (result) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
sendSlice(result.value, state);
} else if (result.status == Office.AsyncResultStatus.Failed) {
console.log(result);
showMessage("sliceCounter: " + state.counter + ".ERROR happened. ErrorCode: " + result.error.code + ".ErrorMessage:" + result.error.message, false);
}else {
showMessage(JSMsg["OfficeAddin.msg.00102"], false);
}
});
}