Я использую следующий код для загрузки больших файлов с моего сервера с использованием XMLHttpRequest. Я тестирую в Firefox и в Windows.
В моем коде downloadURL - это URL-адрес для загрузки файла с моего сервера.Я использую элемент управления сохранением SAP UI5 для сохранения ответа в локальной файловой системе.
var oBlob = null;
var returnStatus;
var xhttp = new window.XMLHttpRequest();
xhttp.open("GET", downloadURL, true); // download urlà content url
xhttp.responseType = "blob";
xhttp.onload = function () {
var oExtension = sFileName.substr(sFileName.lastIndexOf('.') + 1);
var oFileName = sFileName.substr(0, sFileName.lastIndexOf('.'));
oBlob = xhttp.response;
if (xhttp.status !== 400) {
sap.ui.core.util.File.save(oBlob, oFileName, oExtension, sMimeType, 'utf-8');
returnStatus = true;
} else {
returnStatus = false;
}
resolve(returnStatus, xhttp.response);
};
xhttp.send();
});
Этот код работает для файлов меньшего размера, но если мы проверяем его на файлах большего размера, таких как более 1,8 ГБ, он неРабота.
Кажется, что запрос вообще не отправляется из firefox.Я просто вижу запрос на вкладке сети, но нет значения заголовков.Кто-нибудь видел такой запрос?
Странно, но это работает для текстовых файлов, но не для двоичных файлов, таких как zip и pdf.
Я обнаружил, что сохранение таких больших файлов может создать проблему, потому чтосодержимое файла сначала сохраняется в памяти, а затем записывается.Но тогда почему код работает для текстовых файлов.
С наилучшими пожеланиями,
Саурав