Upload Variables

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).
$UploadDir
The directory where uploads are to be stored. Defaults to uploads/ in the pmwiki directory, but can be set to any location on the server. This directory must be writable by the webserver process if uploading is to occur.
$UploadUrlFmt
The url of the directory given by $UploadDir. By default, $UploadUrlFmt is derived from $PubDirUrl and $UploadDir.

$IMapLinkFmt['Attach:']

The format of the upload link displayed when an attachment is present. No default is set.
$LinkUploadCreateFmt
The format of the upload link displayed when an attachment not present. Defaults to
      <a class='createlinktext' href='\$LinkUpload'>\$LinkText</a>
<a class='createlink' href='\$LinkUpload'> Δ</a>");
$UploadPrefixFmt
Sets the prefix for uploaded files to allow attachments to be organized other than by groups. Defaults to '/$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
It is recommended to have the $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;.
$EnableUploadVersions
When set to 1 (default is 0), uploading a file to a location where a file of the same name already exists causes the old version to be renamed to file.ext,timestamp (instead of being overwritten). timestamp is a Unix-style timestamp.
$EnableUploadOverwrite
When set to 1 (the default), determines if overwriting previously uploaded files is allowed.
$UploadNameChars
The set of characters allowed in upload names. Defaults to "-\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
Note: Not all characters can be used in file names, because of various limitations in protocols or operating systems, file systems and server software, or conflict with PmWiki markup:
  • +?:@#%!=/ have special meanings in URL addresses,
  • |\^`[]?:@#%/ may be impossible to save on some systems,
  • <>"|\^`(){}[]#% may conflict with PmWiki markups,
so it is strongly recommended to only enable those if you know what you're doing.
$MakeUploadNamePatterns
An array of regular expression replacements that is used to normalize the filename of an attached file. First, everything but $UploadNameChars will be stripped, then the file extension will be converted to lowercase. Administrators can override these replacements with a custom definition (the full array needs to be defined).
$UploadDirQuota
Overall size limit for all uploads.
   $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
Maximum size for uploading files, 50000 octets (bytes) by default.
$UploadExtSize
Maximum size per extension, overriding the default in $UploadMaxSize.
   $UploadExtSize['zip'] = 2*1024*1024; # allow up to 2MiB for zip files


This page may have a more recent version on pmwiki.org: PmWiki:UploadVariables, and a talk page: PmWiki:UploadVariables-Talk.