diff --git a/frontend/src/app/upload/upload.component.ts b/frontend/src/app/upload/upload.component.ts index fb8f4e1..0f62ca4 100644 --- a/frontend/src/app/upload/upload.component.ts +++ b/frontend/src/app/upload/upload.component.ts @@ -29,6 +29,8 @@ export class UploadComponent { uploadProgress = 0; uploadFinished = false; + uploadSpeedBps: number = 0; + constructor() { this.uploadSpeedTest(); } @@ -68,6 +70,8 @@ export class UploadComponent { console.log(`Uploading file: ${this.fileToUpload.name}, Short storage: ${this.shortStorage}, Single download: ${this.singleDownload}, Password protected: ${this.passwordProtected}`); this.uploadStarted = true; + this.calculateEstimatedUploadTime(); + const interval = setInterval(() => { if (this.uploadProgress < 100) { @@ -107,28 +111,20 @@ export class UploadComponent { const end = new Date().getTime(); // End timer const duration = (end - start) / 1000; // Convert ms to seconds const bitsUploaded = payload.byteLength * 8; - const speedBps = bitsUploaded / duration; - const speedKbps = speedBps / 1024; - const speedMbps = speedKbps / 1024; - console.log(`Upload speed: ${speedMbps.toFixed(2)} Mbps`); + this.uploadSpeedBps = bitsUploaded / duration; + console.log("Speed test ping finished."); }) .catch(error => { console.error('Error during upload test:', error); }); } - /** - * Calculates the estimated upload time. - * @param {number} fileSize - The size of the file in bytes. - * @param {number} uploadSpeed - The upload speed in bytes per second. - * @returns {number} The estimated upload time in seconds. - */ - private calculateEstimatedUploadTime(fileSize: number, uploadSpeed: number) { - if (uploadSpeed <= 0) { - console.error("Upload speed must be greater than 0."); - return NaN; + private calculateEstimatedUploadTime() : void { + const fileSize = this.fileToUpload?.size; + const uploadSpeed = this.uploadSpeedBps / 8; // Convert bits per second to bytes per second + if (fileSize && uploadSpeed) { + const estimatedTimeInSeconds = fileSize / uploadSpeed; + console.log(`Estimated upload time: ${estimatedTimeInSeconds} seconds`); } - const estimatedTimeInSeconds = fileSize / uploadSpeed; - return estimatedTimeInSeconds; } }