mirror of
https://github.com/sbrl/Pepperminty-Wiki.git
synced 2024-11-25 17:23:00 +00:00
Add initial upload page.
This commit is contained in:
parent
7fd3d452d4
commit
1c99138c72
1 changed files with 46 additions and 0 deletions
|
@ -14,6 +14,20 @@ register_module([
|
||||||
{
|
{
|
||||||
case "GET":
|
case "GET":
|
||||||
// Send upload page
|
// Send upload page
|
||||||
|
|
||||||
|
if($settings->allow_uploads)
|
||||||
|
exit(page_renderer::render("Upload - $settings->sitename", "<form method='post' action='?action=upload' enctype='multipart/form-data'>
|
||||||
|
<label for='file'>Select a file to upload.</label>
|
||||||
|
<input type='file' name='file' />
|
||||||
|
<br />
|
||||||
|
<label for='filename'>File Name:</label>
|
||||||
|
<input type='text' name='filename' />
|
||||||
|
<br />
|
||||||
|
<input type='submit' value='Upload' />
|
||||||
|
</form>"));
|
||||||
|
else
|
||||||
|
exit(page_renderer::render("Error - Upload - $settings->sitename", "<p>$settings->sitename does not currently have uploads enabled. <a href='javascript:history.back();'>Go back</a>.</p>"));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "PUT":
|
case "PUT":
|
||||||
|
@ -44,4 +58,36 @@ register_module([
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
//// Pair of functions to calculate the actual maximum upload size supported by the server
|
||||||
|
//// Lifted from Drupal by @meustrus from Stackoverflow. Link to answer:
|
||||||
|
//// http://stackoverflow.com/a/25370978/1460422
|
||||||
|
// Returns a file size limit in bytes based on the PHP upload_max_filesize
|
||||||
|
// and post_max_size
|
||||||
|
function file_upload_max_size()
|
||||||
|
{
|
||||||
|
static $max_size = -1;
|
||||||
|
if ($max_size < 0) {
|
||||||
|
// Start with post_max_size.
|
||||||
|
$max_size = parse_size(ini_get('post_max_size'));
|
||||||
|
// If upload_max_size is less, then reduce. Except if upload_max_size is
|
||||||
|
// zero, which indicates no limit.
|
||||||
|
$upload_max = parse_size(ini_get('upload_max_filesize'));
|
||||||
|
if ($upload_max > 0 && $upload_max < $max_size) {
|
||||||
|
$max_size = $upload_max;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $max_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse_size($size) {
|
||||||
|
$unit = preg_replace('/[^bkmgtpezy]/i', '', $size); // Remove the non-unit characters from the size.
|
||||||
|
$size = preg_replace('/[^0-9\.]/', '', $size); // Remove the non-numeric characters from the size.
|
||||||
|
if ($unit) {
|
||||||
|
// Find the position of the unit in the ordered string which is the power of magnitude to multiply a kilobyte by.
|
||||||
|
return round($size * pow(1024, stripos('bkmgtpezy', $unit[0])));
|
||||||
|
} else {
|
||||||
|
return round($size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in a new issue