Невозможно получить имя файла - на самом деле имя файла может вообще никогда не быть, если, например, часть данных создается в памяти и затем отправляется по сетевому соединению.
Вместо того, чтобы заменить расширение файла, почему бы не добавить его, например: test.doc.gz
Тогда вы можете просто снять его при распаковке.