X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/fe92ec8f17c832c4a663aea399dc90a4c09ce6b1..ef5176dcf0f6d0ebe26834871ce596099c6d0085:/edit/index.php diff --git a/edit/index.php b/edit/index.php index 25f9f1b..6f4dc4d 100644 --- a/edit/index.php +++ b/edit/index.php @@ -5,22 +5,47 @@ if (empty($User['admin'])) abort("geen beheersrechten", '401 unauthorised'); if ($_FILES) { - $img = @$_FILES['upload']; - if (!$img or $img['error'] !== UPLOAD_ERR_OK) - abort('bestand niet goed ontvangen: '.$img['error'], '409 upload error'); + $response = ['uploaded' => 0]; + try { + $img = @$_FILES['upload']; + $response['fileName'] = $img['name']; + if (!$img or $img['error'] !== UPLOAD_ERR_OK) + throw new Exception('bestand niet goed ontvangen: '.$img['error']); - $datadir = 'data/' . date('Y'); - $target = $datadir.'/'.$img['name']; - move_uploaded_file($img['tmp_name'], $target); + $datadir = implode('/', ['data', date('Y')]); + if ($Args) $datadir .= $Args; + if (!file_exists($datadir) and !@mkdir($datadir, 0777, TRUE)) { + throw new Exception("bestand kon niet geplaatst worden in $datadir"); + } + + $target = $datadir.'/'.$img['name']; + $response['url'] = str_replace('%2F', '/', urlencode($target)); + if (!@move_uploaded_file($img['tmp_name'], $target)) { + throw new Exception('bestand kon niet worden opgeslagen'); + } + $response['uploaded']++; + } + catch (Exception $e) { + $response['error'] = ['message' => $e->getMessage()]; + } switch (@$_GET['output']) { + case 'ckjson': + print json_encode($response); + exit; case 'ckescript': + if (empty($response['url'])) break; printf('', - "{$_GET['CKEditorFuncNum']}, '$target'" + "{$_GET['CKEditorFuncNum']}, '{$response['url']}'" ); break; default: - abort($target); + if (empty($response['url'])) break; + print $target; + } + + if (isset($response['error'])) { + abort($response['error']['message'], '409 upload error'); } exit; }