Contents
Действие AttachFile позволяет прикрепить к странице несколько файлов.
Запрещение действия AttachFile
Поскольку загрузка файлов может быть использована для атак вида «отказ от обслуживания» (Denial of Service, DoS), администратор вики может отключить действие AttachFile. См. настройку МойнМойн для более подробной информации.
Создание прикреплённых файлов
Для прикрепления файлов можно либо добавить ссылку на него на любой странице (см. ниже, как это сделать), или щелкнуть по ссылке AttachFile в нижней части страницы. В первом случае после сохранения страницы появится ссылка «Upload new attachment "имя файла"». Если перейти по ней, то будет показана страница загрузки файла, аналогичная той, которая показывается при переходе по ссылке «AttachFile».
Форма загрузки файла состоит из двух полей. Дополнительно к полю ввода имени файла также присутствует необязательное поле «Rename to», используемое для того, чтобы дать загружаемому файлу имя, отличающееся от его локального имени.
Уже прикреплённые файлы могут быть просмотрены, скачаны или удалены, в зависимости от конфигурации вики и прав доступа пользователя. Например, прикреплённый файл не может быть удалён, если у пользователя нет привилегии «delete» на той странице, где он находится.
Любая загрузка или удаление прикреплённых файлов отражаются в списке ПоследниеИзменения и, соответственно, информация о них доступна другим пользователям. Но, в отличие от изменения содержания страницы, история версий для прикреплённых файлов не сохраняется, поэтому рекомендуется сохранять копии загружаемых файлов локально, чтобы можно было восстановить их в случае злонамеренных действий.
Список и информация о прикреплённых файлах
Существуют две макрокоманды, показывающие информацию о прикреплённых файлах на странице. Макрокоманда <<AttachInfo>> выдает краткую информацию о прикреплённых к странице файлах:
There are 4 attachment(s) stored for this page.
Макрокоманда <<AttachList>> выводит список файлов, прикрепленных к странице:
У неё есть два необязательных параметра:
<<AttachList(имя_страницы)>> выводит список прикреплённых файлов страницы с указанным именем.
<<AttachList(имя_страницы,тип_mime)>> выводит список прикреплённых файлов страницы с указанным именем, но только имеющих заданный тип MINE.
<<AttachList(,тип_mime)>> выводит список прикреплённых файлов текущей страницы, имеющих заданный тип MIME.
Ссылки на прикреплённые файлы
Для вставки на страницу ссылки на прикреплённый файл достаточно использовать следующую конструкцию [[attachment:файл с пробелами в имени.txt]].
Не рекомендуется использовать URL ссылки «get», которая отображается на странице просмотра прикреплённых файлов, так как она может меняться и легко может перестать работать после изменения конфигурации вики. Для ссылки на файлы, прикрепленные к другим страницам, можно использовать [[attachment:ИмяСтраницы/имя_файла.ext]].
Включение прикреплённых файлов в тело страницы
Если необходимо включить прикреплённый файл в тело страницы, то для этого можно использовать конструкцию {{attachment:image.png}}. При использовании включения файлы отображаются в зависимости от имеющейся поддержки соответствующего MIME-типа в МойнМойн (например, текстовые форматы могут преобразовываться в html (для форматов wiki и rst, например) или отображаться с подсветкой синтаксиса).
Правка рисунков
Включение вида {{drawing:picturename}} позволяет интерактивно редактировать векторные рисунки с помощью встроенного Java-апплета. Апплет будет записывать три вложения: "picturename.draw", "picturename.png" и "picturename.map". После того, как рисунок будет сохранен в первый раз, сгенерированное изображение в формате PNG будет отображается в месте указания {{drawing:picturename}}. Тег MAP используется для организации image map (активных областей изображения, используемых как ссылки). При этом поддержка Java в браузере требуется только для изменения рисунков, результаты работы могут отображаться в любом браузере.
Для изменения изображения после первого сохранения можно перейти по ссылке «AttachFile» и воспользоваться ссылкой «[edit]», которая отображается вместо «[view]» для прикреплённого файла с расширением .draw. Также можно кликнуть по невидимой рамке шириной 5 пикселов вокруг рисунка, чтобы запустить режим правки. Сохранение рисунка отражается на странице ПоследниеИзменения.
Примечание: апплет не работает с вики-именами. Для ссылки на страницы вики необходимо использовать относительный либо абсолютный URL.
Примечание: рисунки, содержащие не-ASCII символы в их именах, в настоящее время не поддерживаются.
Более подробную информацию об использовании апплета рисования можно получить на странице Plugins/TWikiDrawPlugin.
Установка пакетов
Разархивирование файлов
Для того, чтобы получить доступ к возможности разархивирования, необходимо иметь следующие права на страницу:
- чтение
- запись
- удаление
Например
#acl UserName:read,write,delete All:read
МойнМойн имеет поддержку ограничений на распаковку для предотвращения злоупотреблений данной возможностью. Параметр конфигурации unzip_attachments_space регулирует какой объём могут занимать содержащиеся в архиве файлы после распаковки. Если к странице уже прикреплены файлы с именем, совпадающим с именем файлов в архиве, размер файлов с конфликтующим именем будет вычтен из этого числа (так как они не будут распакованы). Размер одного файла, распакованного из архива, может быть ограничен с помощью параметра unzip_single_file_size конфигурации. Параметр unzip_attachments_count позволяет ограничить количество файлов, которые могут быть извлечены из архива.
Правила распаковки установлены аналогично правилам закачки одного файла. Не разрешается перезаписывать существующий файл извлекаемым из архива.
При распаковке zip-файла извлекаются только файлы первого уровня вложенности. Файлы в подкаталогах игнорируются.
Правильный zip-архив может быть создан следующим образом:
zip example.zip *.jpg
Закачка zip-файла
После того, как Вы выгрузили zip-файл, Вы можете увидеть ссылку «[unzip]».
[удалить | переместить | получить | показать | распаковать] (2009-11-04 12:08:06, 10.3 KB) [[attachment:пример.zip]]
Нет прав на распаковку
Если прав недостаточно, то действие в списке показано не будет: [получить | показать] (2009-11-04 12:08:06, 10.3 KB) [[attachment:пример.zip]]
Недостаточно свободного места
Если в результате распаковки суммарный размер прикреплённых файлов превысит разрешённый лимит, будет показано следующее предупреждение:
Суммарно разрешённый размер прикреплённых файлов регулируется значением параметра unzip_attachments_space конфигурации.
Успешно распаковано
- [удалить | переместить | получить | показать | распаковать] (04.12.2009 12:39:43, 120.9 KB) [[attachment:snap-14_18_46.png]]
- [удалить | переместить | получить | показать | распаковать] (04.12.2009 12:39:43, 68.3 KB) [[attachment:snap-14_56_49.png]]
- [удалить | переместить | получить | показать | распаковать] (04.12.2009 12:39:43, 260.1 KB) [[attachment:snap-15_24_25.png]]
- [удалить | переместить | получить | показать | распаковать] (04.12.2009 12:39:43, 290.3 KB) [[attachment:snap-15_24_45.png]]
- [удалить | переместить | получить | показать | распаковать] (04.12.2009 12:39:43, 295.5 KB) [[attachment:snap-15_25_14.png]]
Извлекаемые файлы слишком велики
Если файл в архиве превышает размер, определенный параметром unzip_single_file_size, то он не будет извлечен.
Перемещение файла
Ссылка действия «[move]» будет отображаться для каждого вложенного файла, если пользователю дана привилегия «delete» для страницы вики, к которой прикреплен этот файл. При выборе данного действия будет показан следующий диалог:
Можно либо просто переименовать файл (оставив его прикрепленным к текущей странице) или переместить файл на другую страницу (при необходимости также осменив его имя). При перемещении необходимо также наличие привилегии «write» для целевой страницы (кроме того, страница, на которую перемещается файл, должна уже существовать).