<p>If attachments are enabled, the wiki admin can control what types of
attachments will be accepted, via the <code>allowed_attachments</code>
configuration setting.</p>
<p>For example, to limit most users to uploading small images, and nothing else,
while allowing larger mp3 files to be uploaded by joey into a specific
directory, and check all attachments for viruses, something like this could be
used:</p>
<pre><code>virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or ((mimetype(image/jpeg) or mimetype(image/png)) and maxsize(50kb)))
</code></pre>
<p>The regular <ahref="../">PageSpec</a> syntax is expanded with the following
additional tests:</p>
<ul>
<li><p>"<code>maxsize(size)</code>" - tests whether the attachment is no larger than the
specified size. The size defaults to being in bytes, but "kb", "mb", "gb"
etc can be used to specify the units.</p></li>
<li><p>"<code>minsize(size)</code>" - tests whether the attachment is no smaller than the
specified size.</p></li>
<li><p>"<code>ispage()</code>" - tests whether the attachment will be treated by ikiwiki as a
wiki page. (Ie, if it has an extension of ".mdwn", or of any other enabled
page format).</p>
<p>So, if you don't want to allow wiki pages to be uploaded as attachments,
use <code>!ispage()</code> ; if you only want to allow wiki pages to be uploaded
as attachments, use <code>ispage()</code>.</p></li>
<li><p>"<code>mimetype(foo/bar)</code>" - checks the MIME type of the attachment. You can
include a glob in the type, for example <code>mimetype(image/*)</code>.</p></li>
<li><p>"<code>virusfree()</code>" - checks the attachment with an antiviral program.</p></li>
<imgsrc="https://analytics.anarc.at/count?p=ikiwiki/pagespec/attachment&t=attachment"alt="tracking pixel to count visitors when Javascript is disabled"/>