Я использую библиотеку Azure JS для загрузки BLOB-объектов.Ниже приведен код, который я написал.
var speedSummary = blobService.createBlockBlobFromBrowserFile(container, fileList[i]["FileID"], selectedFiles[i], options, function (error, result, response) {
finishedOrError = true;
if (error) {
//Handle errors in upload
console.log(error);
alert("upload failed for " + selectedFiles[i].name);
} else {
//Handle success
//Trigger postback to save the file list to database.
uploadedFiles++;
triggerPostBack(uploadedFiles);
}
});
Этот код работал до прошлой недели, потому что я проверял его.Теперь каждый раз происходит сбой с ошибкой «Недопустимый объект файла HTML».
Я попытался отладить библиотеку Azure JS и нашел место, где происходит ошибка.
if (!azureutil.isBrowser() ||
!browserFile ||
!browserFile.constructor ||
(!azureutil.isIE() && !browserFile.constructor.name) ||
(!azureutil.isIE() && browserFile.constructor.name !== 'File' && browserFile.constructor.name !== 'Blob') ||
!azureutil.objectIsInt(browserFile.size)) {
return fail(new ArgumentError('type', 'Invalid HTML File object.'));
} else {
callback();
return true;
}
По какой-то причине это условие постоянно нарушается.Я попытался отключить это условие, а затем в более поздней части библиотеки Azure JS я получил еще одну ошибку, говоря, что «срез не является функцией» во время процесса разбиения на фрагменты.
Я понятия не имею, почему этот код вдруг дает сбой, учитывая, что он работал нормально до выходных.Я проверил списки файлов, и они кажутся правильными объектами файлов со всеми соответствующими свойствами.