Действие AtttachFile (работа с прикреплёнными файлами)

Действие AttachFile позволяет прикрепить к странице несколько файлов.

Запрещение действия AttachFile

Поскольку загрузка файлов может быть использована для атак вида «отказ от обслуживания» (Denial of Service, DoS), администратор вики может отключить действие AttachFile. См. настройку МойнМойн для более подробной информации.

Создание прикреплённых файлов

Для прикрепления файлов можно либо добавить ссылку на него на любой странице (см. ниже, как это сделать), или щелкнуть по ссылке AttachFile в нижней части страницы. В первом случае после сохранения страницы появится ссылка «Upload new attachment "имя файла"». Если перейти по ней, то будет показана страница загрузки файла, аналогичная той, которая показывается при переходе по ссылке «AttachFile».

Форма загрузки файла состоит из двух полей. Дополнительно к полю ввода имени файла также присутствует необязательное поле «Rename to», используемое для того, чтобы дать загружаемому файлу имя, отличающееся от его локального имени.

Уже прикреплённые файлы могут быть просмотрены, скачаны или удалены, в зависимости от конфигурации вики и прав доступа пользователя. Например, прикреплённый файл не может быть удалён, если у пользователя нет привилегии «delete» на той странице, где он находится.

Любая загрузка или удаление прикреплённых файлов отражаются в списке ПоследниеИзменения и, соответственно, информация о них доступна другим пользователям. Но, в отличие от изменения содержания страницы, история версий для прикреплённых файлов не сохраняется, поэтому рекомендуется сохранять копии загружаемых файлов локально, чтобы можно было восстановить их в случае злонамеренных действий.

Список и информация о прикреплённых файлах

Существуют две макрокоманды, показывающие информацию о прикреплённых файлах на странице. Макрокоманда <<AttachInfo>> выдает краткую информацию о прикреплённых к странице файлах:

There are 8 attachment(s) stored for this page.

Макрокоманда <<AttachList>> выводит список файлов, прикрепленных к странице:

  • [get | view] (2012-02-07 20:45:32, 10.3 KB) [[attachment:move_example2.png]]
  • [get | view] (2012-02-07 20:45:32, 7.7 KB) [[attachment:unzip1.png]]
  • [get | view] (2012-02-07 20:45:32, 9.7 KB) [[attachment:unzip2.png]]
  • [get | view] (2012-02-07 20:45:32, 4.5 KB) [[attachment:unzip3.png]]
  • [get | view] (2012-02-07 20:45:32, 4.8 KB) [[attachment:unzip3a.png]]
  • [get | view] (2012-02-07 20:45:32, 75.3 KB) [[attachment:unzip3b.png]]
  • [get | view] (2012-02-07 20:45:32, 10.7 KB) [[attachment:unzip5.png]]
  • [get | view] (2012-02-07 20:45:32, 6.1 KB) [[attachment:unzip7.png]]
 All files | Selected Files: delete move to page copy to page

У неё есть два необязательных параметра:

Ссылки на прикреплённые файлы

Для вставки на страницу ссылки на прикреплённый файл достаточно использовать следующую конструкцию [[attachment:файл с пробелами в имени.txt]].

Не рекомендуется использовать URL ссылки «get», которая отображается на странице просмотра прикреплённых файлов, так как она может меняться и легко может перестать работать после изменения конфигурации вики. Для ссылки на файлы, прикрепленные к другим страницам, можно использовать [[attachment:ИмяСтраницы/имя_файла.ext]].

Включение прикреплённых файлов в тело страницы

Если необходимо включить прикреплённый файл в тело страницы, то для этого можно использовать конструкцию {{attachment:image.png}}. При использовании включения файлы отображаются в зависимости от имеющейся поддержки соответствующего MIME-типа в МойнМойн (например, текстовые форматы могут преобразовываться в html (для форматов wiki и rst, например) или отображаться с подсветкой синтаксиса).

Правка рисунков

См. также ПомощьПоРисункам.

Включение вида {{drawing:picturename.tdraw}} или {{drawing:picturename.tdraw}} позволяет интерактивно редактировать векторные рисунки с помощью встроенного Java-апплета.

Более подробную информацию об использовании апплета рисования можно получить на странице 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]]

Недостаточно свободного места

Если в результате распаковки суммарный размер прикреплённых файлов превысит разрешённый лимит, будет показано следующее предупреждение:

unzip2.png

Суммарно разрешённый размер прикреплённых файлов регулируется значением параметра unzip_attachments_space конфигурации.

Успешно распаковано

unzip3.png

Извлекаемые файлы слишком велики

Если файл в архиве превышает размер, определенный параметром unzip_single_file_size, то он не будет извлечен.

unzip5.png

Перемещение файла

Ссылка действия «[move]» будет отображаться для каждого вложенного файла, если пользователю дана привилегия «delete» для страницы вики, к которой прикреплен этот файл. При выборе данного действия будет показан следующий диалог:

move_example2.png

Можно либо просто переименовать файл (оставив его прикрепленным к текущей странице) или переместить файл на другую страницу (при необходимости также осменив его имя). При перемещении необходимо также наличие привилегии «write» для целевой страницы (кроме того, страница, на которую перемещается файл, должна уже существовать).