а как передать его сразу файлом с нужным расширением?
ну как правило ты же отдаешь файл по пути, в пути находится расширение. а так можешь прибить костыль в виде объекта. где будут некоторые метаданные твоего файла и тело файла
типо можешь даже пильнуть что то вроде пагирования в этом случае. чтобы если загрузка файла была прекращена. а где то в темп директории есть куски твоего файла, чтобы добрать оставшиеся и потом их синергировать