From 0541b0c0200239ca4bc553a7cc7db6331a3e676b Mon Sep 17 00:00:00 2001 From: "kirill.khorkov" Date: Tue, 16 Dec 2025 01:27:06 +0300 Subject: [PATCH] first commit --- image_upload.php | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 image_upload.php diff --git a/image_upload.php b/image_upload.php new file mode 100644 index 0000000..b9833a9 --- /dev/null +++ b/image_upload.php @@ -0,0 +1,53 @@ + 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' => 'Файл не получен']); +} +?> \ No newline at end of file