убраны ретраи, чистый XHR, v1.39
This commit is contained in:
@@ -59,7 +59,7 @@
|
||||
<body>
|
||||
<div class="topbar">
|
||||
<img src="{{ url_for('static', filename='nubes-logo.svg') }}" alt="Nubes">
|
||||
<span class="title">Сверка договоров <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.38</span></span>
|
||||
<span class="title">Сверка договоров <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.39</span></span>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
@@ -155,18 +155,17 @@
|
||||
|
||||
window.removeFile = removeFile;
|
||||
|
||||
// ── Загрузка base64 (JSON, с повторами) ──────────────────
|
||||
// ── Загрузка base64 (JSON) ──────────────────────────────────
|
||||
|
||||
function uploadFileJSON(file, cid, onProgress) {
|
||||
var b64 = null;
|
||||
|
||||
function tryUpload(attempt) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
function doSend() {
|
||||
var reader = new FileReader();
|
||||
reader.onload = function() {
|
||||
var b64 = reader.result.split(',')[1];
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('POST', '/upload');
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.timeout = 120000;
|
||||
xhr.timeout = 30000;
|
||||
xhr.upload.onprogress = function(e) {
|
||||
if (e.lengthComputable && onProgress) onProgress(Math.round(e.loaded / e.total * 100));
|
||||
};
|
||||
@@ -179,24 +178,11 @@
|
||||
xhr.onerror = function() { reject(new Error('Сеть')); };
|
||||
xhr.ontimeout = function() { reject(new Error('Таймаут')); };
|
||||
xhr.send(JSON.stringify({filename: file.name, data: b64, cid: cid || null}));
|
||||
}
|
||||
|
||||
if (b64) { doSend(); return; }
|
||||
var reader = new FileReader();
|
||||
reader.onload = function() { b64 = reader.result.split(',')[1]; doSend(); };
|
||||
};
|
||||
reader.onerror = function() { reject(new Error('Read error')); };
|
||||
reader.readAsDataURL(file);
|
||||
}).catch(function(err) {
|
||||
if (attempt < 3) {
|
||||
return new Promise(function(r) { setTimeout(r, 1000); }).then(function() {
|
||||
return tryUpload(attempt + 1);
|
||||
});
|
||||
}
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
return tryUpload(1);
|
||||
}
|
||||
|
||||
// ── Выбор файла → сразу загрузка ────────────────────────────
|
||||
|
||||
|
||||
Reference in New Issue
Block a user