Загрузите dotfile, используя html5 сохраняющее имя
У меня есть структура каталогов, содержащая список каталогов и файлов. Я хочу дать пользователю возможность загрузки файла. Для скачивания я использую HTML5 download
приписывать. Работает отлично.
Но у структуры каталогов, которая у меня есть, также могут быть точечные файлы, примеры: .babelrc
, .gitignore
, .eslintrc
, так далее.
Когда я использую ту же технику для загрузки таких файлов, файл загружается с тем же содержимым, но файл больше не является точечным файлом. После загрузки, скажем, .gitignore
, файл становится gitignore.txt
,
Я использую это для своего проекта github-plus - расширение Chrome для отображения размера каждого файла, ссылки на скачивание и возможности копирования его содержимого.
Любая помощь будет высоко оценен.
Я использую этот формат:
<a href="https://raw.githubusercontent.com/softvar/secure-ls/master/.babelrc" title="Download File" download=".babelrc">Download</a>
1 ответ
Цитирование спецификации HTML5 по загрузке ресурсов с download
атрибут о типе файла / расширении:
Если заявленный тип известен, измените имя файла, чтобы добавить расширение, соответствующее заявленному типу.
В противном случае, если известно, что именованный тип потенциально опасен (например, он будет рассматриваться в соответствии с соглашениями платформы как собственный исполняемый файл, сценарий оболочки, приложение HTML или документ с возможностью выполнения макроса), а затем при необходимости измените имя файла, чтобы добавить известный безопасный расширение (например, ".txt").
Кажется, что:
- часть алгоритма, которая окончательно выбирает имя файла, зависит от платформы
- если расширение не распознано, как в случае с точечными файлами, браузер попытается определить его, используя тип файла MIME
- Файлы в любом случае могут рассматриваться как потенциально опасные, поскольку они являются скрытыми файлами на различных платформах. Похоже, это то, что происходит в вашем случае, с удалением начальной точки и
.txt
расширение добавлено.