<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$nomr = isset($_POST['nomr']) ? preg_replace('/[^a-zA-Z0-9_-]/', '', $_POST['nomr']) : 'default';

$base_dir = 'D:/FILE-RM/';
$upload_dir = $base_dir . $nomr . '/';

if (!is_dir($upload_dir)) {
    if (!mkdir($upload_dir, 0777, true)) {
        http_response_code(500);
        echo json_encode(['status' => 'error', 'message' => 'Gagal membuat folder upload']);
        exit;
    }
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (!isset($_FILES['file']) || $_FILES['file']['error'] !== 0) {
        http_response_code(400);
        echo json_encode(['status' => 'error', 'message' => 'File upload tidak valid']);
        exit;
    }

    $filename = isset($_POST['filename']) && $_POST['filename'] !== ''
        ? basename($_POST['filename'])
        : basename($_FILES['file']['name']);

    $destination = $upload_dir . $filename;

    if (move_uploaded_file($_FILES['file']['tmp_name'], $destination)) {
        echo json_encode([
            'status' => 'success',
            'file'   => $filename,
            'path'   => $destination
        ]);
    } else {
        http_response_code(500);
        echo json_encode(['status' => 'error', 'message' => 'Gagal upload file']);
    }
}
