## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnActions/AttachFile
##master-date:2010-01-18T13:30:40Z
#acl -All:write Default
#format wiki
#language ru

<<TableOfContents>>

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

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

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

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

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

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

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

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

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

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

<<AttachInfo>>

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

<<AttachList>>

У неё есть два необязательных параметра:
 * `<<AttachList(имя_страницы)>>` выводит список прикреплённых файлов страницы с указанным именем.
 * `<<AttachList(имя_страницы,тип_mime)>>` выводит список прикреплённых файлов страницы с указанным именем, но только имеющих заданный тип MINE.
 * `<<AttachList(,тип_mime)>>` выводит список прикреплённых файлов текущей страницы, имеющих заданный тип MIME.

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

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

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

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

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

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

Более подробную информацию об использовании апплета рисования можно получить на странице TWiki: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-файл, Вы можете увидеть ссылку «[<<GetText(unzip)>>]».

{{{#!html
[<a href="#">удалить</a>&nbsp;| <a href="#">переместить</a>&nbsp;| <a href="#">получить</a>&nbsp;| <a href="#">показать</a>&nbsp;| <a href="#">распаковать</a>] (2009-11-04 12:08:06, 10.3 KB) [[attachment:пример.zip]]
}}}

=== Нет прав на распаковку ===
Если прав недостаточно, то действие в списке показано не будет:
{{{#!html
[<a href="#">получить</a>&nbsp;| <a href="#">показать</a>] (2009-11-04 12:08:06, 10.3 KB) [[attachment:пример.zip]]
}}}

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

{{attachment:unzip2.png}}

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

=== Успешно распаковано ===
{{attachment:unzip3.png}}
{{{#!html
<ul>
<li>[<a href="#">удалить</a>&nbsp;| <a href="#">переместить</a>&nbsp;| <a href="#">получить</a>&nbsp;| <a href="#">показать</a>&nbsp;| <a href="#">распаковать</a>] (04.12.2009 12:39:43, 120.9 KB) [[attachment:snap-14_18_46.png]]</li>
<li>[<a href="#">удалить</a>&nbsp;| <a href="#">переместить</a>&nbsp;| <a href="#">получить</a>&nbsp;| <a href="#">показать</a>&nbsp;| <a href="#">распаковать</a>] (04.12.2009 12:39:43, 68.3 KB) [[attachment:snap-14_56_49.png]]</li>
<li>[<a href="#">удалить</a>&nbsp;| <a href="#">переместить</a>&nbsp;| <a href="#">получить</a>&nbsp;| <a href="#">показать</a>&nbsp;| <a href="#">распаковать</a>] (04.12.2009 12:39:43, 260.1 KB) [[attachment:snap-15_24_25.png]]</li>
<li>[<a href="#">удалить</a>&nbsp;| <a href="#">переместить</a>&nbsp;| <a href="#">получить</a>&nbsp;| <a href="#">показать</a>&nbsp;| <a href="#">распаковать</a>] (04.12.2009 12:39:43, 290.3 KB) [[attachment:snap-15_24_45.png]]</li>
<li>[<a href="#">удалить</a>&nbsp;| <a href="#">переместить</a>&nbsp;| <a href="#">получить</a>&nbsp;| <a href="#">показать</a>&nbsp;| <a href="#">распаковать</a>] (04.12.2009 12:39:43, 295.5 KB) [[attachment:snap-15_25_14.png]]</li>
</ul>
}}}

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

{{attachment:unzip5.png}}

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

{{attachment:move_example2.png}}

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