Merge pull request #16718 from owncloud/files-catchajaxexceptions

Catch exceptions in files ajax calls
This commit is contained in:
Thomas Müller 2015-06-05 12:01:01 +02:00
commit ccbb1cce3c
4 changed files with 59 additions and 21 deletions

View File

@ -54,6 +54,7 @@ $success = true;
//Now delete //Now delete
foreach ($files as $file) { foreach ($files as $file) {
try {
if (\OC\Files\Filesystem::file_exists($dir . '/' . $file) && if (\OC\Files\Filesystem::file_exists($dir . '/' . $file) &&
!(\OC\Files\Filesystem::isDeletable($dir . '/' . $file) && !(\OC\Files\Filesystem::isDeletable($dir . '/' . $file) &&
\OC\Files\Filesystem::unlink($dir . '/' . $file)) \OC\Files\Filesystem::unlink($dir . '/' . $file))
@ -61,6 +62,10 @@ foreach ($files as $file) {
$filesWithError .= $file . "\n"; $filesWithError .= $file . "\n";
$success = false; $success = false;
} }
} catch (\Exception $e) {
$filesWithError .= $file . "\n";
$success = false;
}
} }
// get array with updated storage stats (e.g. max file size) after upload // get array with updated storage stats (e.g. max file size) after upload

View File

@ -78,11 +78,22 @@ $templateManager = OC_Helper::getFileTemplateManager();
$mimeType = OC_Helper::getMimetypeDetector()->detectPath($target); $mimeType = OC_Helper::getMimetypeDetector()->detectPath($target);
$content = $templateManager->getTemplate($mimeType); $content = $templateManager->getTemplate($mimeType);
try {
if($content) { if($content) {
$success = \OC\Files\Filesystem::file_put_contents($target, $content); $success = \OC\Files\Filesystem::file_put_contents($target, $content);
} else { } else {
$success = \OC\Files\Filesystem::touch($target); $success = \OC\Files\Filesystem::touch($target);
} }
} catch (\Exception $e) {
$result = [
'success' => false,
'data' => [
'message' => $e->getMessage()
]
];
OCP\JSON::error($result);
exit();
}
if($success) { if($success) {
$meta = \OC\Files\Filesystem::getFileInfo($target); $meta = \OC\Files\Filesystem::getFileInfo($target);

View File

@ -74,6 +74,7 @@ if (\OC\Files\Filesystem::file_exists($target)) {
exit(); exit();
} }
try {
if(\OC\Files\Filesystem::mkdir($target)) { if(\OC\Files\Filesystem::mkdir($target)) {
if ( $dir !== '/') { if ( $dir !== '/') {
$path = $dir.'/'.$folderName; $path = $dir.'/'.$folderName;
@ -85,5 +86,15 @@ if(\OC\Files\Filesystem::mkdir($target)) {
OCP\JSON::success(array('data' => \OCA\Files\Helper::formatFileInfo($meta))); OCP\JSON::success(array('data' => \OCA\Files\Helper::formatFileInfo($meta)));
exit(); exit();
} }
} catch (\Exception $e) {
$result = [
'success' => false,
'data' => [
'message' => $e->getMessage()
]
];
OCP\JSON::error($result);
exit();
}
OCP\JSON::error(array('data' => array( 'message' => $l10n->t('Error when creating the folder') ))); OCP\JSON::error(array('data' => array( 'message' => $l10n->t('Error when creating the folder') )));

View File

@ -29,15 +29,26 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck(); OCP\JSON::callCheck();
\OC::$server->getSession()->close(); \OC::$server->getSession()->close();
$l10n = \OC::$server->getL10N('files');
$files = new \OCA\Files\App( $files = new \OCA\Files\App(
\OC\Files\Filesystem::getView(), \OC\Files\Filesystem::getView(),
\OC::$server->getL10N('files') \OC::$server->getL10N('files')
); );
try {
$result = $files->rename( $result = $files->rename(
isset($_GET['dir']) ? (string)$_GET['dir'] : '', isset($_GET['dir']) ? (string)$_GET['dir'] : '',
isset($_GET['file']) ? (string)$_GET['file'] : '', isset($_GET['file']) ? (string)$_GET['file'] : '',
isset($_GET['newname']) ? (string)$_GET['newname'] : '' isset($_GET['newname']) ? (string)$_GET['newname'] : ''
); );
} catch (\Exception $e) {
$result = [
'success' => false,
'data' => [
'message' => $e->getMessage()
]
];
}
if($result['success'] === true){ if($result['success'] === true){
OCP\JSON::success(['data' => $result['data']]); OCP\JSON::success(['data' => $result['data']]);