PmWiki
pmwiki.org
edit SideBar
https://www.jetphotos.com/photographer/598301
https://www.jetphotos.com/photographer/598304
https://www.jetphotos.com/photographer/598305
https://www.jetphotos.com/photographer/598307
https://www.jetphotos.com/photographer/598310
https://www.jetphotos.com/photographer/598312
https://www.jetphotos.com/photographer/598317
https://www.jetphotos.com/photographer/598318
https://www.jetphotos.com/photographer/598320
https://www.jetphotos.com/photographer/598321
https://www.jetphotos.com/photographer/598322
https://www.jetphotos.com/photographer/598324
https://www.jetphotos.com/photographer/598328
https://www.jetphotos.com/photographer/598340
https://www.jetphotos.com/photographer/598341
https://www.jetphotos.com/photographer/598346
https://www.jetphotos.com/photographer/598349
https://www.jetphotos.com/photographer/598357
https://www.jetphotos.com/photographer/598366
https://www.jetphotos.com/photographer/598372
https://www.jetphotos.com/photographer/598374
https://www.jetphotos.com/photographer/598378
https://www.jetphotos.com/photographer/600028
https://www.jetphotos.com/photographer/600031
https://www.jetphotos.com/photographer/600032
https://www.jetphotos.com/photographer/600034
https://www.jetphotos.com/photographer/600036
https://www.jetphotos.com/photographer/600037
https://www.jetphotos.com/photographer/600039
https://www.jetphotos.com/photographer/600041
https://www.jetphotos.com/photographer/600042
https://www.jetphotos.com/photographer/600045
https://www.jetphotos.com/photographer/600046
https://www.jetphotos.com/photographer/600047
https://www.jetphotos.com/photographer/600048
https://www.jetphotos.com/photographer/600050
https://www.jetphotos.com/photographer/600051
https://www.jetphotos.com/photographer/600052
https://www.jetphotos.com/photographer/600053
https://www.jetphotos.com/photographer/600055
https://www.jetphotos.com/photographer/600057
https://www.jetphotos.com/photographer/600641
https://www.jetphotos.com/photographer/600644
https://www.jetphotos.com/photographer/600645
https://www.jetphotos.com/photographer/600646
https://www.jetphotos.com/photographer/602231
https://www.jetphotos.com/photographer/602240
https://www.jetphotos.com/photographer/602244
https://www.jetphotos.com/photographer/602247
https://www.jetphotos.com/photographer/602261
https://www.jetphotos.com/photographer/602265
https://www.jetphotos.com/photographer/602279
https://www.jetphotos.com/photographer/602307
https://www.jetphotos.com/photographer/602315
https://www.jetphotos.com/photographer/602323
https://www.jetphotos.com/photographer/602340
https://www.jetphotos.com/photographer/602346
https://www.jetphotos.com/photographer/602741
https://www.jetphotos.com/photographer/602743
https://www.jetphotos.com/photographer/602744
https://www.jetphotos.com/photographer/602745
https://www.jetphotos.com/photographer/602746
https://www.jetphotos.com/photographer/602748
https://www.jetphotos.com/photographer/602749
https://www.jetphotos.com/photographer/602750
https://www.jetphotos.com/photographer/602757
https://www.jetphotos.com/photographer/602758
https://www.jetphotos.com/photographer/602762
https://www.jetphotos.com/photographer/602763
https://www.jetphotos.com/photographer/602764
https://www.jetphotos.com/photographer/602769
https://www.jetphotos.com/photographer/602770
https://www.jetphotos.com/photographer/602772
https://www.jetphotos.com/photographer/602773
https://www.jetphotos.com/photographer/602774
https://www.jetphotos.com/photographer/602775
https://www.jetphotos.com/photographer/601186
https://www.jetphotos.com/photographer/601188
https://www.jetphotos.com/photographer/601189
https://www.jetphotos.com/photographer/601191
https://www.jetphotos.com/photographer/601192
https://www.jetphotos.com/photographer/601194
https://www.jetphotos.com/photographer/601196
https://www.jetphotos.com/photographer/601197
https://www.jetphotos.com/photographer/601248
https://www.jetphotos.com/photographer/601249
https://www.jetphotos.com/photographer/601250
https://www.jetphotos.com/photographer/601251
https://www.jetphotos.com/photographer/601252
https://www.jetphotos.com/photographer/601254
https://www.jetphotos.com/photographer/601255
https://www.jetphotos.com/photographer/601256
https://www.jetphotos.com/photographer/601258
https://www.jetphotos.com/photographer/601260
https://www.jetphotos.com/photographer/601261
https://www.jetphotos.com/photographer/601263
https://www.jetphotos.com/photographer/601264
https://www.jetphotos.com/photographer/601265
https://www.jetphotos.com/photographer/601266
https://www.jetphotos.com/photographer/601267
https://www.jetphotos.com/photographer/601268
https://www.jetphotos.com/photographer/601269
https://www.jetphotos.com/photographer/601270
https://www.jetphotos.com/photographer/601272
https://www.jetphotos.com/photographer/601273
https://www.jetphotos.com/photographer/602779
https://www.jetphotos.com/photographer/602780
https://www.jetphotos.com/photographer/602781
https://www.jetphotos.com/photographer/602782
https://www.jetphotos.com/photographer/600111
https://www.jetphotos.com/photographer/600112
https://www.jetphotos.com/photographer/600148
https://www.jetphotos.com/photographer/600151
https://www.jetphotos.com/photographer/600155
https://www.jetphotos.com/photographer/600157
https://www.jetphotos.com/photographer/600159
https://www.jetphotos.com/photographer/600161
https://www.jetphotos.com/photographer/600163
https://www.jetphotos.com/photographer/600647
https://www.jetphotos.com/photographer/600648
https://www.jetphotos.com/photographer/600649
https://www.jetphotos.com/photographer/600650
https://www.jetphotos.com/photographer/602889
https://www.jetphotos.com/photographer/602890
https://www.jetphotos.com/photographer/602891
https://www.jetphotos.com/photographer/602895
https://www.jetphotos.com/photographer/602897
https://www.jetphotos.com/photographer/602900
https://www.jetphotos.com/photographer/602904
https://www.jetphotos.com/photographer/602907
https://www.jetphotos.com/photographer/602913
https://www.jetphotos.com/photographer/602916
https://www.jetphotos.com/photographer/602918
https://www.jetphotos.com/photographer/602922
https://www.jetphotos.com/photographer/602923
https://www.jetphotos.com/photographer/602925
https://www.jetphotos.com/photographer/602926
https://www.jetphotos.com/photographer/600534
https://www.jetphotos.com/photographer/600535
https://www.jetphotos.com/photographer/600536
https://www.jetphotos.com/photographer/600538
https://www.jetphotos.com/photographer/600539
https://www.jetphotos.com/photographer/600540
https://www.jetphotos.com/photographer/600542
https://www.jetphotos.com/photographer/600543
https://www.jetphotos.com/photographer/600544
https://www.jetphotos.com/photographer/600547
https://www.jetphotos.com/photographer/600548
https://www.jetphotos.com/photographer/600549
https://www.jetphotos.com/photographer/600550
https://www.jetphotos.com/photographer/600552
https://www.jetphotos.com/photographer/600553
https://www.jetphotos.com/photographer/600555
https://www.jetphotos.com/photographer/600558
https://www.jetphotos.com/photographer/600565
https://www.jetphotos.com/photographer/600566
https://www.jetphotos.com/photographer/600567
https://www.jetphotos.com/photographer/600568
https://www.jetphotos.com/photographer/600571
https://www.jetphotos.com/photographer/600573
https://www.jetphotos.com/photographer/600575
https://www.jetphotos.com/photographer/600576
https://www.jetphotos.com/photographer/600577
https://www.jetphotos.com/photographer/600578
https://www.jetphotos.com/photographer/600666
https://www.jetphotos.com/photographer/600668
https://www.jetphotos.com/photographer/600669
https://www.jetphotos.com/photographer/600670
https://www.jetphotos.com/photographer/602963
https://www.jetphotos.com/photographer/601276
https://www.jetphotos.com/photographer/601280
https://www.jetphotos.com/photographer/601281
https://www.jetphotos.com/photographer/601284
https://www.jetphotos.com/photographer/601285
https://www.jetphotos.com/photographer/601286
https://www.jetphotos.com/photographer/601287
https://www.jetphotos.com/photographer/601288
https://www.jetphotos.com/photographer/601291
https://www.jetphotos.com/photographer/601293
https://www.jetphotos.com/photographer/602776
https://www.jetphotos.com/photographer/602777
https://www.jetphotos.com/photographer/602955
https://www.jetphotos.com/photographer/602956
https://www.jetphotos.com/photographer/602957
https://www.jetphotos.com/photographer/602959
https://www.jetphotos.com/photographer/602960
https://www.jetphotos.com/photographer/602961
|
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).
$UploadExts - An array containing as keys the file extensions that can be attached to the wiki, and as values the standard MIME content types of these extensions. See Adding new file types to permitted uploads.
$EnableUploadMimeMatch - By default, PmWiki only checks file extensions, and users could upload files with wrong extensions (say, a PDF file with a DOC extension, or a file with a disallowed extension renamed to an allowed one). Setting this variable to true will check the MIME content type of the uploaded file, and if it doesn't match the one defined in
$UploadExts , the upload will be refused.
-
-
$EnableUploadMimeMatch = true;
-
- Note that occasionally this may block valid files, for example a CSV file may be detected as "text/plain" or "application/csv", or a password-protected office file may appear as "application/encrypted". To allow such files, configure the allowed content-types for the extension as regular expressions:
-
-
$EnableUploadMimeMatch = array(
'csv'=>'!^(text/plain|application/csv)$!',
'docx'=>'!^(application/encrypted)$!',
);
$UploadBlacklist - This array contains forbidden strings for an uploaded file (case insensitive). Some installations with the Apache server will try to execute a file which name contains ".php", ".pl" or ".cgi" even if it is not the last part of the filename. For example, a file named "test.php.txt" may be executed. To disallow such files to be uploaded, add to config.php such a line:
-
-
$UploadBlacklist = array('.php', '.pl', '.cgi', '.py'); # disallow common script files
$UploadPermAdd - This variable sets additional unix permissions applied to newly uploaded files, and should be 0 (recommended as of 2013). If uploaded files cannot be downloaded and displayed on the website, for example with the error 403 Forbidden, set this value to 0444 (core setting, default since 2004).
-
-
$UploadPermAdd = 0; # recommended
$UploadPermSet - This variable sets unix permissions unconditionally applied to newly uploaded files, for example
0604 . 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 - 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 exists. Can be changed with such a line in
config.php :
$IMapLinkFmt['Attach:'] = "<a class='attachlink' href='\$LinkUrl'>\$LinkText</a>";
$LinkUploadCreateFmt - The format of the upload link displayed when an attachment not present. Can be changed with such a line in
config.php :
$LinkUploadCreateFmt = "<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).
$EnableDownloadRanges - When the wiki has protected downloads (see
$EnableDirectDownload ), it sends a HTTP header "Accept-Ranges" and can serve partial content if the browser requests it. This can be useful for large files such as videos, and is enabled by default. Set this variable to 0 to disable this feature and serve whole files only.
$EnableUploadGroupAuth - Set
$EnableUploadGroupAuth = 1; to authenticate downloads with the group password. This could be used together with $EnableDirectDownload = 0; . Note: $EnableUploadGroupAuth should not be enabled if your wiki uses per-page attachments.
$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. It is only possible to enable characters that exist in the code page (charater set) of the wiki, see Wikipedia:Code page.
-
$UploadNameChars = "-\\w."; # default: allow dash, letters, digits, underscore, and dots (no spaces)
-
$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). Currently the default sequence is:
$MakeUploadNamePatterns = array(
"/[^$UploadNameChars]/" => '', # strip all not-allowed characters
'/\\.[^.]*$/' => 'cb_tolower', # convert extension to lowercase (callback function)
'/^[^[:alnum:]_]+/' => '', # strip initial spaces, dashes, dots
'/[^[:alnum:]_]+$/' => '')) # strip trailing spaces, dashes, dots
$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
$UploadRedirectFunction - The function to be called after a file was posted. By default the "Redirect" function is called with arguments
$pagename and the URL of the ?action=upload page (with additional information if the upload was successful or why it wasn't, and if the file was renamed). An add-on may define its own function, for example an AJAX upload may only return some variable back to the browser.
|