Files
web_work/image_upload.php
kirill.khorkov 0541b0c020 first commit
2025-12-16 01:27:06 +03:00

53 lines
1.8 KiB
PHP

<?php
// image_upload.php
session_start();
// Проверка прав администратора
if (!isset($_SESSION['isAdmin']) || $_SESSION['isAdmin'] !== true) {
echo json_encode(['success' => false, 'message' => 'Доступ запрещен']);
exit();
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) {
$uploadDir = 'uploads/products/';
// Создаем директорию если не существует
if (!file_exists($uploadDir)) {
mkdir($uploadDir, 0777, true);
}
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
$maxSize = 5 * 1024 * 1024; // 5MB
$file = $_FILES['image'];
// Проверка типа файла
if (!in_array($file['type'], $allowedTypes)) {
echo json_encode(['success' => false, 'message' => 'Допустимые форматы: JPEG, PNG, GIF, WebP']);
exit();
}
// Проверка размера
if ($file['size'] > $maxSize) {
echo json_encode(['success' => false, 'message' => 'Максимальный размер файла: 5MB']);
exit();
}
// Генерируем уникальное имя
$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
$fileName = 'product_' . time() . '_' . rand(1000, 9999) . '.' . $extension;
$filePath = $uploadDir . $fileName;
if (move_uploaded_file($file['tmp_name'], $filePath)) {
echo json_encode([
'success' => true,
'url' => $filePath,
'name' => $fileName
]);
} else {
echo json_encode(['success' => false, 'message' => 'Ошибка загрузки файла']);
}
} else {
echo json_encode(['success' => false, 'message' => 'Файл не получен']);
}
?>