Skip to content
Snippets Groups Projects
Commit 6b34ba8a authored by Robin Appelman's avatar Robin Appelman
Browse files

Make max upload filesize configurable for apache hosts

parent f48344df
No related branches found
No related tags found
No related merge requests found
......@@ -26,15 +26,26 @@
require_once('../lib/base.php');
require( 'template.php' );
// Check if we are a user
if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){
header( "Location: ".OC_HELPER::linkTo( "index.php" ));
exit();
}
$htaccessWorking=(getenv('htaccessWorking')=='true');
if(isset($_POST['maxUploadSize'])){
$maxUploadFilesize=$_POST['maxUploadSize'];
OC_FILES::setUploadLimit(OC_HELPER::computerFileSize($maxUploadFilesize));
}else{
$maxUploadFilesize = ini_get('upload_max_filesize').'B';
}
OC_APP::setActiveNavigationEntry( "files_administration" );
// return template
$tmpl = new OC_TEMPLATE( "files", "admin", "admin" );
$tmpl->assign( 'htaccessWorking', $htaccessWorking );
$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
$tmpl->printPage();
?>
......@@ -57,7 +57,7 @@ foreach( explode( "/", $dir ) as $i ){
// return template
$tmpl = new OC_TEMPLATE( "files", "index", "user" );
$tmpl->assign( "files", $files );
$tmpl->assign( 'files', $files );
$tmpl->assign( "breadcrumb", $breadcrumb );
$tmpl->printPage();
......
<form>
<form action='#' method='post'>
<?php if($_['htaccessWorking']):?>
Maximum upload size <input name='maxUploadSize' value='<?php echo $_['uploadMaxFilesize'] ?>'/><br/>
<?php endif;?>
<input type="checkbox" /> Allow public folders<br>
(if public is enabled)<br>
......@@ -9,4 +12,5 @@
<input type="checkbox" /> Allow downloading shared files<br>
<input type="checkbox" /> Allow uploading in shared directory<br>
<input type='submit' value='Save'/>
</form>
......@@ -291,6 +291,24 @@ class OC_FILES {
return false;
}
}
/**
* set the maximum upload size limit for apache hosts using .htaccess
* @param int size filesisze in bytes
*/
static function setUploadLimit($size){
global $SERVERROOT;
global $WEBROOT;
$size=OC_HELPER::humanFileSize($size);
echo $size;
$size=substr($size,0,-1);//strip the B
$size=str_replace(' ','',$size); //remove the space between the size and the postfix
$content = "ErrorDocument 404 /$WEBROOT/templates/404.php\n";//custom 404 error page
$content.= "php_value upload_max_filesize $size\n";//upload limit
$content.= "php_value post_max_size $size\n";
$content.= "SetEnv htaccessWorking true\n";
@file_put_contents($SERVERROOT.'/.htaccess', $content); //supress errors in case we don't have permissions for it
}
}
function zipAddDir($dir,$zip,$internalDir=''){
......
......@@ -167,7 +167,10 @@ class OC_SETUP {
private static function createHtaccess() {
global $SERVERROOT;
global $WEBROOT;
$content = "ErrorDocument 404 /$WEBROOT/templates/404.php\n";
$content = "ErrorDocument 404 /$WEBROOT/templates/404.php\n";//custom 404 error page
$content.= "php_value upload_max_filesize 20M\n";//upload limit
$content.= "php_value post_max_size 20M\n";
$content.= "SetEnv htaccessWorking true\n";
@file_put_contents($SERVERROOT.'/.htaccess', $content); //supress errors in case we don't have permissions for it
$content = "deny from all";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment