На чем Легальные / Допустимые символы для имен файлов веб-сервера?

Существует очень крутая кривая обучения к WPF, и я рекомендую получить очевидные книги сначала ( Adam Nathan , Sells/Griffiths, и Chris Anderson ) и блоги ( Josh Smith , и т.д.). Просто будьте подготовлены к нему и удостоверьтесь, что Ваш проект позволяет Вам время для изучения WPF.

В дополнение к изучению технологии, проведите некоторое время, узнавая, что шаблоны раньше создавали приложения WPF. Образцовый ViewModel Представления (MVVM), кажется, тот, который получил большое принятие.

Лично, я думаю, что WPF стоит того, но быть предупрежденным. Также обратите внимание эффективное ограничение пользователей Windows XP SP2 + и Windows  Vista. Мы приняли то решение, но у Вас могут быть некоторые различные требования.

12
задан Clay Nichols 30 September 2009 в 15:06
поделиться

5 ответов

Какие символы разрешены в именах файлов HTML-файлов на серверах?

Это полностью зависит от сервера. Сам HTTP позволяет использовать любые символы, включая управляющие символы и символы, отличные от ASCII, при условии, что они соответствующим образом закодированы% при запросе в URL.

На сервере Unix нельзя использовать '/' или нулевой байт. (Если бы вы могли их использовать, они бы отображались в URL-адресе как «% 2F» и «% 00» соответственно.) У вас также не может быть конкретных имен файлов ». или '..', или пустую строку.

На сервере Windows у вас есть все ограничения сервера Unix, плюс вы также не можете использовать \ /: *? "<> | или управляющие символы 1-31, и у вас не может быть начальной или конечной точки или пробелов, и у вас возникнут трудности с использованием любого из устаревших имен файлов устройств (CON, PRN, COM1 и многие другие).

Это не имеет ничего общего с HTTP; как работают имена файлов в Windows, что сложно .

Могу я иметь File-Name.htm, File_Name.htm File Name.htm?

Конечно. Но в последнем случае вы должны ссылаться на него, URL-кодируя пробел:

<a href="File%20Name.htm">thingy</a>

Браузеры обычно позволяют вам оставить место внутри, но это не совсем корректно. Если вы не хотите думать об экранировании URL и HTML, а также о чувствительности к регистру, придерживайтесь букв a – z, 0–9 и подчеркивания.

20
ответ дан 2 December 2019 в 06:45
поделиться

Обязательно удалите

*. "/ \ []:; | =,

, которые никогда не разрешены из-за несоответствий в соглашениях об именах файлов стандартной практикой является использование az, 0-9 и символа подчеркивания. Пробел необходим для большинства пользователей, но если вы можете уйти от его использования, есть проблемы с анализом, которые повышают надежность, вы можете прочитать rfc на mime (многосоставные расширения интернет-почты), чтобы понять, в чем дело.

Независимо от того, что вы делаете, что-то где-то вероятно усложняют жизнь - настолько, что теперь я использую криптографические методы для генерации случайных строчных строк az и использую их в качестве имен файлов, встраивая полезную информацию в исходный код файла.

Избегайте амперсанда любой ценой, ...

2
ответ дан 2 December 2019 в 06:45
поделиться

Не существует такого понятия, как html-имя файла.
Некоторые символы должны быть закодированы в html (например, если они используются в ссылках), но разрешенные символы в именах документов будут зависеть от веб-сервера (и, возможно, файловой системы на сервере).

0
ответ дан 2 December 2019 в 06:45
поделиться

Любое имя файла будет URL-кодировано , так что все будет в порядке. И для записи все три имени файла подойдут.

0
ответ дан 2 December 2019 в 06:45
поделиться

Если вы не хотите, чтобы ваши имена файлов кодировались сервером, вам следует избегать зарезервированных символов: $ & +, / :; =? @ и небезопасные символы: пробел, кавычки, <> #% {} | \ ^ ~ [] `

Но, как указывалось в предыдущих ответах, веб-серверы должны справляться со всем, что вы хотите использовать, кодируя символы .

1
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: