|
|
|
@ -9,8 +9,17 @@ OCP\JSON::setContentTypeHeader('text/plain'); |
|
|
|
|
OCP\JSON::checkLoggedIn(); |
|
|
|
|
OCP\JSON::callCheck(); |
|
|
|
|
|
|
|
|
|
// current max upload size |
|
|
|
|
$l=new OC_L10N('files'); |
|
|
|
|
$maxUploadFilesize=OCP\Util::maxUploadFilesize($dir); |
|
|
|
|
$maxHumanFilesize=OCP\Util::humanFileSize($maxUploadFilesize); |
|
|
|
|
$maxHumanFilesize=$l->t('Upload') . ' max. '.$maxHumanFilesize; |
|
|
|
|
|
|
|
|
|
if (!isset($_FILES['files'])) { |
|
|
|
|
OCP\JSON::error(array('data' => array( 'message' => 'No file was uploaded. Unknown error' ))); |
|
|
|
|
OCP\JSON::error(array('data' => array( 'message' => 'No file was uploaded. Unknown error', |
|
|
|
|
'uploadMaxFilesize'=>$maxUploadFilesize, |
|
|
|
|
'maxHumanFilesize'=>$maxHumanFilesize |
|
|
|
|
))); |
|
|
|
|
exit(); |
|
|
|
|
} |
|
|
|
|
foreach ($_FILES['files']['error'] as $error) { |
|
|
|
@ -27,7 +36,10 @@ foreach ($_FILES['files']['error'] as $error) { |
|
|
|
|
UPLOAD_ERR_NO_TMP_DIR=>$l->t('Missing a temporary folder'), |
|
|
|
|
UPLOAD_ERR_CANT_WRITE=>$l->t('Failed to write to disk'), |
|
|
|
|
); |
|
|
|
|
OCP\JSON::error(array('data' => array( 'message' => $errors[$error] ))); |
|
|
|
|
OCP\JSON::error(array('data' => array( 'message' => $errors[$error], |
|
|
|
|
'uploadMaxFilesize'=>$maxUploadFilesize, |
|
|
|
|
'maxHumanFilesize'=>$maxHumanFilesize |
|
|
|
|
))); |
|
|
|
|
exit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -41,7 +53,10 @@ foreach($files['size'] as $size) { |
|
|
|
|
$totalSize+=$size; |
|
|
|
|
} |
|
|
|
|
if($totalSize>OC_Filesystem::free_space($dir)) { |
|
|
|
|
OCP\JSON::error(array('data' => array( 'message' => 'Not enough space available' ))); |
|
|
|
|
OCP\JSON::error(array('data' => array( 'message' => 'Not enough space available', |
|
|
|
|
'uploadMaxFilesize'=>$maxUploadFilesize, |
|
|
|
|
'maxHumanFilesize'=>$maxHumanFilesize |
|
|
|
|
))); |
|
|
|
|
exit(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -55,11 +70,19 @@ if(strpos($dir, '..') === false) { |
|
|
|
|
if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) { |
|
|
|
|
$meta = OC_FileCache::get($target); |
|
|
|
|
$id = OC_FileCache::getId($target); |
|
|
|
|
// updated max file size after upload |
|
|
|
|
$maxUploadFilesize=OCP\Util::maxUploadFilesize($dir); |
|
|
|
|
$maxHumanFilesize=OCP\Util::humanFileSize($maxUploadFilesize); |
|
|
|
|
$maxHumanFilesize=$l->t('Upload') . ' max. '.$maxHumanFilesize; |
|
|
|
|
|
|
|
|
|
$result[]=array( 'status' => 'success', |
|
|
|
|
'mime'=>$meta['mimetype'], |
|
|
|
|
'size'=>$meta['size'], |
|
|
|
|
'id'=>$id, |
|
|
|
|
'name'=>basename($target)); |
|
|
|
|
'name'=>basename($target), |
|
|
|
|
'uploadMaxFilesize'=>$maxUploadFilesize, |
|
|
|
|
'maxHumanFilesize'=>$maxHumanFilesize |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
OCP\JSON::encodedPrint($result); |
|
|
|
@ -68,4 +91,7 @@ if(strpos($dir, '..') === false) { |
|
|
|
|
$error='invalid dir'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
OCP\JSON::error(array('data' => array('error' => $error, 'file' => $fileName))); |
|
|
|
|
OCP\JSON::error(array('data' => array('error' => $error, 'file' => $fileName, |
|
|
|
|
'uploadMaxFilesize'=>$maxUploadFilesize, |
|
|
|
|
'maxHumanFilesize'=>$maxHumanFilesize |
|
|
|
|
))); |
|
|
|
|