edit: implement filename storage in upload include
[minimedit.git] / edit / index.php
index 2367b2377e72834d52c8851cd54f4728fdcbed12..cd222163a5a3615a7ad39193a0bcf218e471ae56 100644 (file)
@@ -5,28 +5,39 @@ 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');
-
-       $datadir = implode('/', ['data', date('Y')]);
-       if (!file_exists($datadir) and !@mkdir($datadir, 0777, TRUE)) {
-               abort("bestand kon niet geplaatst worden in $datadir", '409 upload error');
+       $response = ['uploaded' => 0];
+       try {
+               require_once('upload.inc.php');
+               $datadir = implode('/', ['data', date('Y')]);
+               if ($Args) $datadir .= $Args;
+               $target = userupload(@$_FILES['upload'], $datadir);
+               if ($target) {
+                       $response['fileName'] = $_FILES['upload']['name'];
+                       $response['url'] = str_replace('%2F', '/', urlencode($target));
+                       $response['uploaded']++;
+               }
        }
-
-       $target = $datadir.'/'.$img['name'];
-       if (!@move_uploaded_file($img['tmp_name'], $target)) {
-               abort('bestand kon niet worden opgeslagen', '409 upload error');
+       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('<script>window.parent.CKEDITOR.tools.callFunction(%s)</script>',
-                       "{$_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;
 }