Работа над загрузкой файлов на сервер

This commit is contained in:
Book Pauk
2019-02-04 20:37:32 +07:00
parent edc2819965
commit fb852b5dcb
2 changed files with 15 additions and 8 deletions

View File

@@ -32,7 +32,7 @@ class ReaderController extends BaseController {
let error = ''; let error = '';
try { try {
const url = await this.readerWorker.saveFile(file); const url = await this.readerWorker.saveFile(file);
return ({url}); return {url};
} catch (e) { } catch (e) {
error = e.message; error = e.message;
} }

View File

@@ -27,6 +27,7 @@ class ReaderWorker {
let errMes = ''; let errMes = '';
let decompDir = ''; let decompDir = '';
let downloadedFilename = ''; let downloadedFilename = '';
let isUploaded = false;
let convertFilename = ''; let convertFilename = '';
try { try {
wState.set({state: 'download', step: 1, totalSteps: 3, url}); wState.set({state: 'download', step: 1, totalSteps: 3, url});
@@ -35,13 +36,19 @@ class ReaderWorker {
const tempFilename2 = utils.randomHexString(30); const tempFilename2 = utils.randomHexString(30);
const decompDirname = utils.randomHexString(30); const decompDirname = utils.randomHexString(30);
//download if (url.indexOf('file://') != 0) {//download
const downdata = await this.down.load(url, (progress) => { const downdata = await this.down.load(url, (progress) => {
wState.set({progress}); wState.set({progress});
}); });
downloadedFilename = `${this.config.tempDownloadDir}/${tempFilename}`; downloadedFilename = `${this.config.tempDownloadDir}/${tempFilename}`;
await fs.writeFile(downloadedFilename, downdata); await fs.writeFile(downloadedFilename, downdata);
} else {//uploaded file
downloadedFilename = `${this.config.uploadDir}/${url.substr(7)}`;
if (!await fs.pathExists(downloadedFilename))
throw new Error('Файл не найден на сервере (возможно был удален как устаревший). Пожалуйста, загрузите файл с диска на сервер заново.');
isUploaded = true;
}
wState.set({progress: 100}); wState.set({progress: 100});
//decompress //decompress
@@ -73,7 +80,7 @@ class ReaderWorker {
//clean //clean
if (decompDir) if (decompDir)
await fs.remove(decompDir); await fs.remove(decompDir);
if (downloadedFilename) if (downloadedFilename && !isUploaded)
await fs.remove(downloadedFilename); await fs.remove(downloadedFilename);
if (convertFilename) if (convertFilename)
await fs.remove(convertFilename); await fs.remove(convertFilename);