file:shit.zip – ищет в глобальном и в текущем хранилище? а file:/shit.zip – только в глобальном?
file:!/shit.zip
file:/WakkaToDo/Upload/shit.zip
Опции конфига
upload = true|false|"admins"
upload_images_only = true|false — проверять после загрузки по EXIF, есть ли это картинка, если нет – denied
upload_max_size = число — размер в килобайтах
upload_path = files — куда класть общедоступные файлы
upload_path_per_page = «files/perpage» — куда класть файлы (обычно подкаталог, там лежит htaccess deny from all)
Модели прав
Реализуются следующие модели загрузки и последующей доступности файлов:
«Всё всем»:
загружать могут привилегированные пользователи (в частном случае – все)
на любой файл можно сослаться с любой страницы
файл может сгрузить любой
«Права на страницы»:
загружать могут привилегированные пользователи, имеющие права записи на данную страницу
файл, загруженный на эту страницу, доступен только с неё
файл может сгрузить только имеющий доступ на чтение к данной странице
Пока не учитывается версионинг (поддержка версий) файлов.
При закачке файла можно выбрать, будет ли он доступен всем или только читателям данной страницы.
Общедоступные файлы будут храниться в одной папке, файлы с правами – в другой (с хтакссес-денай-фор-олл) и снабжаться префиксами-именами страниц.
Необходимо не забыть, что нужно защититься от возможности загрузки общедоступных файлов *.php, *.pl, *.cgi, *.phtml etc.
/Ку Ме — нужно ввести стоп-символ, чтобы разделить префикс и имя файла.
Чем вредят файлы *.php в папке с хтакссес-денай-фор-олл? Или файлы *.pl без права execute?
Файлы, начинающиеся с точки, ничем не страшны, если они снабжены префиксами-именами страниц.
Модели представления
Реализуются следуюшие модели для представления ссылок на файлы:
«Экшн без параметров»
при вызове экшна {{Files}} отображается список файлов, доступных к скачиванию с данной страницы
совместимо с моделью «Права на страницы»
«Сатисфэкшн с параметрами»
при вызове {{Files for="/WakkaToDo/Up"}}
«Экшн»
при вызове экшна {{Files files="file1.doc file2.xls ..."}} отображается список файлов, перечисленных в параметре files.
совместимо с моделями «Всё всем» и «Права на файлы»
«Ссылка»
wacko-форматтер расширяется новым синтаксисом для простановки ссылки на единичный файл и/или вызов изображения.
совместимо с моделями «Всё всем», «Права на файлы» и «Права на страницы» (менее удобно в этом случае).
Не понимаю, почему «Ссылка» несовместима с «Права на страницы». По идее тут может быть та же проверка прав и тот же замочек, что и для ссылок на страницу этого файла.
SQL код создания таблицы в БД
CREATE TABLE wakka_upload (
id int(11) NOT NULL auto_increment,
page_id int(11) NOT NULL default '0',
filename varchar(250) NOT NULL default '',
description varchar(250) NOT NULL default '',
uploaded_dt datetime NOT NULL default '0000-00-00 00:00:00',
filesize int(11) NOT NULL default '0',
picture_w int(11) NOT NULL default '0',
picture_h int(11) NOT NULL default '0',
file_ext varchar(10) NOT NULL default '',
user varchar(80) NOT NULL default '0',
PRIMARY KEY (id),
KEY page_id (page_id,filename),
KEY page_id_2 (page_id,uploaded_dt),
KEY user_id (user,page_id)
) TYPE=MyISAM;