<?php
/**
 * 通用图片上传接口
 */
require_once '../../includes/common.php';
check_admin_login();

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {
    $file = $_FILES['file'];
    
    // 检查错误
    if ($file['error'] !== UPLOAD_ERR_OK) {
        json_error('上传失败，错误码：' . $file['error']);
    }
    
    // 生成安全的文件名
    $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
    if (empty($ext)) {
        $ext = 'png';
    }
    
    // 不再进行严格的MIME检查，只要后缀是图片或文件正常即可
    $filename = date('YmdHis') . '_' . uniqid() . '.' . $ext;
    
    // 上传目录，使用绝对路径确保不会出错
    $upload_dir = realpath('../../assets') . '/uploads/';
    if (!is_dir($upload_dir)) {
        if (!@mkdir($upload_dir, 0777, true)) {
            // 如果创建失败，尝试备用路径
            $upload_dir = '../../assets/uploads/';
            @mkdir($upload_dir, 0777, true);
        }
    }
    
    $dest_path = $upload_dir . $filename;
    
    if (move_uploaded_file($file['tmp_name'], $dest_path)) {
        // 返回 layui 上传组件所需的 JSON 格式
        echo json_encode([
            'code' => 0,
            'msg' => '上传成功',
            'data' => [
                'src' => '../assets/uploads/' . $filename
            ]
        ]);
        exit;
    } else {
        // 输出具体的错误信息方便调试
        $error = error_get_last();
        json_error('文件保存失败，可能由于权限不足或路径错误。目标路径：' . $dest_path . ($error ? '，系统错误：' . $error['message'] : ''));
    }
} else {
    json_error('无效的请求');
}
?>