У меня есть файловый сервер HTTP stati c. Чтобы сделать файлы загружаемыми принудительно, я передаю данные с Content-Type
как application/octet-stream
. А также прикрепление некоторых метаданных, например, так: 'Content-disposition', 'attachment; filename=' + fileName
.
Почти все файлы загружаются с правильным именем файла, как и ожидалось, но некоторые файлы имеют начальный .
, например .DS_STORE
, .bashrc
, et c при загрузке теряет свою ведущую точку. Я имею в виду, когда я загружаю .bashrc
, он скачивается как bashrc
. Файл с расширением .a.b.c
загружается с именем a.b.c
. Как мне убедиться, что ведущая точка не потеряна?
Я также проверил вкладку сети, и в заголовках ответов атрибут имени файла имеет начальную точку. Но при загрузке он теряется.
Вот код, который я использую для передачи файлов:
const fileName = path.basename(pathToFile);
res.set('Content-Type', 'application/octet-stream');
res.set('Content-disposition', `attachment; filename=${fileName}`);
const buffer = fs.readFileSync(pathToFile);
res.status(200);
res.send(buffer);
res
- это объект, который предоставляется моему контроллеру express
.