get max upload file size for upload form from php settings

This commit is contained in:
Arthur Schiwon 2011-04-17 12:03:23 +02:00
parent ab155de14f
commit a14f8243e8
3 changed files with 39 additions and 1 deletions

View File

@ -60,6 +60,7 @@ $tmpl = new OC_TEMPLATE( "files", "index", "user" );
$tmpl->assign( "files", $files ); $tmpl->assign( "files", $files );
$tmpl->assign( "breadcrumb", $breadcrumb ); $tmpl->assign( "breadcrumb", $breadcrumb );
$tmpl->assign( 'dir', $dir); $tmpl->assign( 'dir', $dir);
$tmpl->assign( 'uploadMaxFilesize', OC_HELPER::computerFileSize(ini_get('upload_max_filesize')));
$tmpl->printPage(); $tmpl->printPage();
?> ?>

View File

@ -8,7 +8,7 @@ href="" title="" class="delete">Delete</a>
<div id="file_upload_form"> <div id="file_upload_form">
<form action="ajax/upload.php" <form action="ajax/upload.php"
method="post" enctype="multipart/form-data" target="file_upload_target"><input method="post" enctype="multipart/form-data" target="file_upload_target"><input
type="hidden" name="MAX_FILE_SIZE" value="2097152" id="max_upload"><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $_["uploadMaxFilesize"] ?>" id="max_upload"><input
type="hidden" name="dir" value="<?php echo $_["dir"] ?>" id="dir"><input type="hidden" name="dir" value="<?php echo $_["dir"] ?>" id="dir"><input
type="file" name="file" id="fileSelector"><input type="submit" type="file" name="file" id="fileSelector"><input type="submit"
id="file_upload_start" value="Upload" /><iframe id="file_upload_target" id="file_upload_start" value="Upload" /><iframe id="file_upload_target"

View File

@ -118,6 +118,43 @@ class OC_HELPER {
return "$bytes GB"; return "$bytes GB";
} }
/**
* @brief Make a computer file size
* @param $str file size in a fancy format
* @returns a file size in bytes
*
* Makes 2kB to 2048.
*
* Inspired by: http://www.php.net/manual/en/function.filesize.php#92418
*/
public static function computerFileSize( $str ){
$bytes = 0;
$bytes_array = array(
'B' => 1,
'K' => 1024,
'KB' => 1024,
'MB' => 1024 * 1024,
'M' => 1024 * 1024,
'GB' => 1024 * 1024 * 1024,
'G' => 1024 * 1024 * 1024,
'TB' => 1024 * 1024 * 1024 * 1024,
'T' => 1024 * 1024 * 1024 * 1024,
'PB' => 1024 * 1024 * 1024 * 1024 * 1024,
'P' => 1024 * 1024 * 1024 * 1024 * 1024,
);
$bytes = floatval($str);
if (preg_match('#([KMGTP]?B?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
$bytes *= $bytes_array[$matches[1]];
}
$bytes = intval(round($bytes, 2));
return $bytes;
}
/** /**
* @brief Recusive editing of file permissions * @brief Recusive editing of file permissions
* @param $path path to file or folder * @param $path path to file or folder