Это просто математический вопрос? Если это так, возьмите разницу между timeStarted и timeNow, умножьте это на uploadSpeed, возьмите результат и вычтите его из fileSize и разделите его на uploadSpeed. Это ваше оставшееся время (при условии, что uploadSpeed постоянен в любое время).
(fileSize - (timeNow - timeStarted) * uploadSpeed) / uploadSpeed
Но более точный способ - взять фактическое количество загруженных байтов, чтобы вычислить оставшееся время. Это не должно быть проблемой, так как пользователь загружает файл на ваш сервер. Поэтому вы можете просто прочитать частичный размер файла с вашего сервера.