Как не пускать в браузер рубить ведущую точку в имени файла октетного потока? - PullRequest
1 голос
/ 16 апреля 2020

У меня есть файловый сервер 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...