2016-08-13 8 views
1

У меня есть структура каталогов, содержащая список каталогов и файлов. Я хочу дать пользователю возможность загрузки файла. Для загрузки я использую атрибут HTML5 download. Он работает отлично.Загрузить dotfile с помощью 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>

JSFIDDLE DEMO

ответ

1

Цитирование спецификации HTML5 на downloading resources с атрибутом download, о типе файла/расширения:

Если заявленный тип известен, затем измените имя файла, чтобы добавить расширение, соответствующее заявленному типу ,

В противном случае, если именованный тип, как известно, потенциально опасен (например, он будет обрабатываться соглашениями о платформе как исполняемый файл, сценарий оболочки, HTML-приложение или документ с возможностью выполнения макросов), а затем необязательно изменить имя файла для добавления безопасное расширение (например, «.txt»).

Кажется, что:

  • часть алгоритма, который, наконец, Choses имя файла является зависит от платформы
  • , если расширение не распознается, как и в случае составляют скрытые , браузер попытается определить его, используя файл MIME-тип
  • dotfiles можно также рассматривать как потенциально опасны, поскольку они являются скрытыми файлами на разных платформах. Кажется, это происходит в вашем случае с удалением начальной точки и добавлением расширения .txt.
+0

Это полезная информация. Нет ли каких-либо взломов/обходных путей? – softvar

+0

Не то, чтобы я знал, и если бы это было так, это могло бы и было бы воспринято как утечка. – arainone

 Смежные вопросы

  • Нет связанных вопросов^_^