See also: Uploads, Uploads admin.
:$EnableUpload:The upload.php script is automatically included from stdconfig.php if the $EnableUpload variable is true in config.php. Note that one may still need to set an upload password before users can upload (see UploadsAdmin).
$UploadBlacklist $UploadBlacklist = array('.php', '.pl', '.cgi'); # disallow common script files
$UploadPermAdd$UploadPermAdd = 0; # recommended
$UploadPermSet0604. Danger! Do not use this variable unless you know what you're doing! If you make a mistake, uploaded files may be impossible to edit or delete via the FTP/SSH account (in that case, Cookbook:Attachtable may be used) or to be downloaded and displayed on the website. Note that file permissions may differ on different systems - if you copy or move your PmWiki installation, you may have to change it.
$UploadDir:$UploadUrlFmt:The url of the directory given by $UploadDir. By default, $UploadUrlFmt is derived from $PubDirUrl and $UploadDir.
$IMapLinkFmt['Attach:']$IMapLinkFmt['Attach:'] = "<a class='attachlink' href='\$LinkUrl'>\$LinkText</a>";
$LinkUploadCreateFmt$LinkUploadCreateFmt = "<a class='createlinktext' href='\$LinkUpload'>\$LinkText</a> <a class='createlink' href='\$LinkUpload'> Δ</a>";
$UploadPrefixFmt'/$Group' (uploads are organized per-group), but can be set to other values for sitewide or per-page attachments.
$UploadPrefixFmt = '/$Group/$Name'; # per-page attachments
$UploadPrefixFmt = ''; # sitewide attachments
$UploadPrefixFmt variable defined in config.php, the same for all pages in the wiki, and not in group/page local configuration files. Otherwise you will be unable to link to attachments in other wikigroups.
:$EnableDirectDownload:When set to 1 (the default), links to attachments bypass PmWiki and come directly from the webserver. Setting $EnableDirectDownload=0; causes requests for attachments to be obtained via ?action=download. This allows PmWiki to protect attachments using a page's read permissions, but also increases the load on the server. Don't forget to protect your directory /uploads/ with a .htaccess file (Order Deny,Allow / Deny from all).
:$EnableUploadGroupAuth:Set @@$EnableUploadGroupAuth = 1; to authenticate downloads with the group password. This could be used together with $EnableDirectDownload = 0;@@.
$EnableUploadVersionsfile.ext,timestamp (instead of being overwritten). timestamp is a Unix-style timestamp.
$EnableUploadOverwrite$UploadNameChars"-\w. ", which means alphanumerics, hyphens, underscores, dots, and spaces can be used in upload names, and everything else will be stripped.
$UploadNameChars = "-\\w. !"; # allow dash, letters, digits, dots, spaces and exclamations
$UploadNameChars = "-\\w. \\x80-\\xff"; # allow Unicode
+?:@#%!=/ have special meanings in URL addresses,
|\^`[]?:@#%/ may be impossible to save on some systems,
<>"|\^`(){}[]#% may conflict with PmWiki markups,
$MakeUploadNamePatterns = array(
"/[^$UploadNameChars]/" => '', # strip all not-allowed characters
'/\\.[^.]*$/e' => 'strtolower("$0")', # convert extension to lowercase
'/^[^[:alnum:]_]+/' => '', # strip initial spaces, dashes, dots
'/[^[:alnum:]_]+$/' => '')); # strip trailing spaces, dashes, dots
$UploadDirQuota$UploadDirQuota = 100*1024; # limit uploads to 100KiB $UploadDirQuota = 1000*1024; # limit uploads to 1000KiB $UploadDirQuota = 1024*1024; # limit uploads to 1MiB $UploadDirQuota = 25*1024*1024; # limit uploads to 25MiB $UploadDirQuota = 2*1024*1024*1024; # limit uploads to 2GiB
:$UploadPrefixQuota:Overall size limit for one directory containing uploads. This directory is usually @@uploads/GroupName@@ (one for every WikiGroup), or @@uploads/Group/PageName@@ (one for every page), depending on the variable $UploadPrefixFmt.
$UploadMaxSize:$UploadExtSize:Maximum size per extension, overriding the default in $UploadMaxSize.
$UploadExtSize['zip'] = 2*1024*1024; # allow up to 2MiB for zip files