diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/Network.ts | 2 | ||||
-rw-r--r-- | src/server/ApiManagers/UploadManager.ts | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/client/Network.ts b/src/client/Network.ts index e9f93fad3..89b31fdca 100644 --- a/src/client/Network.ts +++ b/src/client/Network.ts @@ -59,12 +59,14 @@ export namespace Networking { ); } formData.set('fileguids', fileguidpairs.map(pair => pair.guid).join(';')); + formData.set('filesize', fileguidpairs.reduce((sum, pair) => sum + pair.file.size, 0).toString()); // If the fileguidpair has a guid to use (From the overwriteDoc) use that guid. Otherwise, generate a new guid. fileguidpairs.forEach(fileguidpair => formData.append(fileguidpair.guid ?? Utils.GenerateGuid(), fileguidpair.file)); } else { // Handle the case where fileguidpairs is a single file. const guids = fileguidpairs.guid ?? Utils.GenerateGuid(); formData.set('fileguids', guids); + formData.set('filesize', fileguidpairs.file.size.toString()); formData.append(guids, fileguidpairs.file); } const parameters = { diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts index 4509425bb..826db0de8 100644 --- a/src/server/ApiManagers/UploadManager.ts +++ b/src/server/ApiManagers/UploadManager.ts @@ -65,12 +65,16 @@ export default class UploadManager extends ApiManager { secureHandler: async ({ req, res }) => { const form = new formidable.IncomingForm(); let fileguids = ''; + let filesize = ''; form.on('field', (e: string, value: string) => { if (e === 'fileguids') { (fileguids = value).split(';').map(guid => DashUploadUtils.uploadProgress.set(guid, 'reading file')); } + if (e === 'filesize') { + filesize = value; + } }); - form.on('progress', e => fileguids.split(';').map(guid => DashUploadUtils.uploadProgress.set(guid, 'read: ' + e))); + form.on('progress', e => fileguids.split(';').map(guid => DashUploadUtils.uploadProgress.set(guid, `read:(${+e / +filesize}%) ${e} of ' +${filesize}`))); form.keepExtensions = true; form.uploadDir = pathToDirectory(Directory.parsed_files); return new Promise<void>(resolve => { |