25 * 1024 * 1024) { dbnToolsError('Filen må være mellom 1 byte og 25 MB.', 413, 'bad_size'); } // Validate it's actually a PDF (magic number check) $fh = @fopen($tmp, 'rb'); if ($fh === false) { dbnToolsError('Kunne ikke lese filen.', 500, 'read_fail'); } $head = (string)fread($fh, 5); fclose($fh); if (strncmp($head, '%PDF-', 5) !== 0) { dbnToolsError('Filen er ikke en gyldig PDF.', 415, 'not_pdf'); } try { $doc = CaseStore::registerUpload($userId, $name, $tmp, $size); CaseStore::caseEnqueueIngest((int)$doc['doc_id'], $userId); dbnToolsRespond([ 'ok' => true, 'doc_id' => $doc['doc_id'], 'filename' => $doc['filename'], ]); } catch (Throwable $e) { dbnToolsError($e->getMessage(), 400, 'upload_failed'); }