diff --git a/pages/download.html b/pages/download.html index 1c7a44c..6582f9e 100644 --- a/pages/download.html +++ b/pages/download.html @@ -34,7 +34,7 @@ download -
+
diff --git a/src/server/index.ts b/src/server/index.ts index 9451cb9..49c38cb 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -170,6 +170,9 @@ app.get("/download/:fileId",(req,res) => { let fgRQH = async (req:express.Request,res:express.Response) => { files.readFileStream(req.params.fileId).then(f => { res.setHeader("Content-Type",f.contentType) + if (f.byteSize) { + res.setHeader("Content-Length",f.byteSize) + } res.status(200) f.dataStream.pipe(res) }).catch((err) => { diff --git a/src/server/lib/files.ts b/src/server/lib/files.ts index 9cd39f0..224ab75 100644 --- a/src/server/lib/files.ts +++ b/src/server/lib/files.ts @@ -215,7 +215,7 @@ export default class Files { // todo: move read code here - readFileStream(uploadId: string):Promise<{dataStream:Readable,contentType:string}> { + readFileStream(uploadId: string):Promise<{dataStream:Readable,contentType:string,byteSize?:number}> { return new Promise(async (resolve,reject) => { if (!this.uploadChannel) { reject({status:503,message:"server is not ready - please try again later"}) @@ -231,7 +231,8 @@ export default class Files { resolve({ contentType: file.mime, - dataStream: dataStream + dataStream: dataStream, + byteSize: file.sizeInBytes }) for (let i = 0; i < file.messageids.length; i++) {