Merge pull request #848 from ArthurHoaro/hotfix/upload-maxsize
Use raw bytes for upload size hidden input
This commit is contained in:
commit
504c9df4e7
4 changed files with 35 additions and 7 deletions
|
@ -414,23 +414,24 @@ function human_bytes($bytes)
|
||||||
$bytes /= 1024;
|
$bytes /= 1024;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $bytes . $units[$i];
|
return round($bytes) . $units[$i];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to determine max file size for uploads (POST).
|
* Try to determine max file size for uploads (POST).
|
||||||
* Returns an integer (in bytes)
|
* Returns an integer (in bytes) or formatted depending on $format.
|
||||||
*
|
*
|
||||||
* @param mixed $limitPost post_max_size PHP setting
|
* @param mixed $limitPost post_max_size PHP setting
|
||||||
* @param mixed $limitUpload upload_max_filesize PHP setting
|
* @param mixed $limitUpload upload_max_filesize PHP setting
|
||||||
|
* @param bool $format Format max upload size to human readable size
|
||||||
*
|
*
|
||||||
* @return int max upload file size in bytes.
|
* @return int|string max upload file size
|
||||||
*/
|
*/
|
||||||
function get_max_upload_size($limitPost, $limitUpload)
|
function get_max_upload_size($limitPost, $limitUpload, $format = true)
|
||||||
{
|
{
|
||||||
$size1 = return_bytes($limitPost);
|
$size1 = return_bytes($limitPost);
|
||||||
$size2 = return_bytes($limitUpload);
|
$size2 = return_bytes($limitUpload);
|
||||||
// Return the smaller of two:
|
// Return the smaller of two:
|
||||||
$maxsize = min($size1, $size2);
|
$maxsize = min($size1, $size2);
|
||||||
return human_bytes($maxsize);
|
return $format ? human_bytes($maxsize) : $maxsize;
|
||||||
}
|
}
|
||||||
|
|
17
index.php
17
index.php
|
@ -1489,7 +1489,22 @@ function renderPage($conf, $pluginManager, $LINKSDB)
|
||||||
|
|
||||||
if (! isset($_POST['token']) || ! isset($_FILES['filetoupload'])) {
|
if (! isset($_POST['token']) || ! isset($_FILES['filetoupload'])) {
|
||||||
// Show import dialog
|
// Show import dialog
|
||||||
$PAGE->assign('maxfilesize', get_max_upload_size(ini_get('post_max_size'), ini_get('upload_max_filesize')));
|
$PAGE->assign(
|
||||||
|
'maxfilesize',
|
||||||
|
get_max_upload_size(
|
||||||
|
ini_get('post_max_size'),
|
||||||
|
ini_get('upload_max_filesize'),
|
||||||
|
false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$PAGE->assign(
|
||||||
|
'maxfilesizeHuman',
|
||||||
|
get_max_upload_size(
|
||||||
|
ini_get('post_max_size'),
|
||||||
|
ini_get('upload_max_filesize'),
|
||||||
|
true
|
||||||
|
)
|
||||||
|
);
|
||||||
$PAGE->renderPage('import');
|
$PAGE->renderPage('import');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -392,13 +392,14 @@ public function testHumanBytes()
|
||||||
$this->assertEquals('2GiB', human_bytes(strval(2 * (pow(1024, 3)))));
|
$this->assertEquals('2GiB', human_bytes(strval(2 * (pow(1024, 3)))));
|
||||||
$this->assertEquals('374B', human_bytes(374));
|
$this->assertEquals('374B', human_bytes(374));
|
||||||
$this->assertEquals('374B', human_bytes('374'));
|
$this->assertEquals('374B', human_bytes('374'));
|
||||||
|
$this->assertEquals('232kiB', human_bytes(237481));
|
||||||
$this->assertEquals('Unlimited', human_bytes('0'));
|
$this->assertEquals('Unlimited', human_bytes('0'));
|
||||||
$this->assertEquals('Unlimited', human_bytes(0));
|
$this->assertEquals('Unlimited', human_bytes(0));
|
||||||
$this->assertEquals('Setting not set', human_bytes(''));
|
$this->assertEquals('Setting not set', human_bytes(''));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test get_max_upload_size
|
* Test get_max_upload_size with formatting
|
||||||
*/
|
*/
|
||||||
public function testGetMaxUploadSize()
|
public function testGetMaxUploadSize()
|
||||||
{
|
{
|
||||||
|
@ -406,4 +407,14 @@ public function testGetMaxUploadSize()
|
||||||
$this->assertEquals('1MiB', get_max_upload_size('1m', '2m'));
|
$this->assertEquals('1MiB', get_max_upload_size('1m', '2m'));
|
||||||
$this->assertEquals('100B', get_max_upload_size(100, 100));
|
$this->assertEquals('100B', get_max_upload_size(100, 100));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test get_max_upload_size without formatting
|
||||||
|
*/
|
||||||
|
public function testGetMaxUploadSizeRaw()
|
||||||
|
{
|
||||||
|
$this->assertEquals('1048576', get_max_upload_size(2097152, '1024k', false));
|
||||||
|
$this->assertEquals('1048576', get_max_upload_size('1m', '2m', false));
|
||||||
|
$this->assertEquals('100', get_max_upload_size(100, 100, false));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ <h2 class="window-title">{"Import Database"|t}</h2>
|
||||||
<div class="center" id="import-field">
|
<div class="center" id="import-field">
|
||||||
<input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}">
|
<input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}">
|
||||||
<input type="file" name="filetoupload">
|
<input type="file" name="filetoupload">
|
||||||
|
<p><br>Maximum size allowed: <strong>{$maxfilesizeHuman}</strong></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="pure-g">
|
<div class="pure-g">
|
||||||
|
|
Loading…
Reference in a new issue