2013-08-08 2 views
0

Я работаю над сайтом с большим количеством загрузок (PDF). Мне нужно разработать стратегию для именования этих файлов.Стратегии для именования файлов для загрузки через браузер

Так следующие мои основные критерии:

  1. Имена файлов должны быть законным во всех операционных системах.
  2. Имена файлов должны быть безопасными URL.
  3. Имена файлов должны быть максимально читабельными.

Я много читал об этой теме и читал много противоречивых мнений о том, какие символы можно использовать и которые нельзя использовать и какие стратегии лучше всего.

Каков наилучший набор правил для применения к именованию файлов, чтобы они удовлетворяли моим трем критериям выше.

Я использую Rails 3 для записи.

ответ

1

Я считаю, что любой символ ASCII может быть экранирован в URL-адресе (т. Е. %20 - это пробел).

Символы не разрешены в Windows, являются \/:*?"<>| (в соответствии с Windows), и вы не можете иметь файлы с одинаковыми именами, но в разных случаях в том же каталоге (т.е. FILE.txt и file.txt классифицировать как же названием). Linux и Mac скорее разрешают. Все операционные системы или только те? Существует также немало менее известных операционных систем, но они, как правило, не предназначены для общего использования.

Технически вы можете ограничить его из пространства (0x20) на ~ (0x7E) в the ASCII table: (за исключением того, что не допустимых для Windows)

ASCII

Но с точки зрения читабельность и если вы не хотите избегать URL-адресов, вероятно, проще всего ограничить ее 0-9, AZ и az, и какой-то разделитель (например, _) всегда хорош.

Я нашел this table, который должен дать вам довольно хорошее представление о том, что нужно экранировать для URL-адресов:

Char Escape Code 
SPACE %20 
<  %3C 
>  %3E 
#  %23 
%  %25 
{  %7B 
}  %7D 
|  %7C 
\  %5C 
^  %5E 
~  %7E 
[  %5B 
]  %5D 
`  %60 
;  %3B 
/  %2F 
?  %3F 
:  %3A 
@  %40 
=  %3D 
&  %26 
$  %24 
Смежные вопросы