File manager - Edit - /home/webapp69.cm.in.th/u69319090033/Shop/api/upload_slip.php
Back
<?php header('Content-Type: application/json; charset=utf-8'); require_once '../db.php'; if (!isset($_SESSION['user_id'])) { http_response_code(401); echo json_encode(['success' => false, 'message' => 'กรุณาเข้าสู่ระบบก่อน']); exit; } if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['success' => false, 'message' => 'Method Not Allowed']); exit; } $allowedTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']; $maxSize = 5 * 1024 * 1024; // 5MB if (!isset($_FILES['slip']) || $_FILES['slip']['error'] !== UPLOAD_ERR_OK) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'ไม่พบไฟล์สลิปที่อัปโหลด']); exit; } $file = $_FILES['slip']; if ($file['size'] > $maxSize) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'ไฟล์สลิปต้องมีขนาดไม่เกิน 5MB']); exit; } // ตรวจสอบ MIME type จริง $finfo = finfo_open(FILEINFO_MIME_TYPE); $mimeType = finfo_file($finfo, $file['tmp_name']); finfo_close($finfo); if (!in_array($mimeType, $allowedTypes)) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'รองรับเฉพาะไฟล์ JPG, PNG, WEBP เท่านั้น']); exit; } $ext = 'jpg'; if ($mimeType === 'image/png') $ext = 'png'; elseif ($mimeType === 'image/webp') $ext = 'webp'; $uploadDir = __DIR__ . '/../uploads/slips/'; if (!is_dir($uploadDir)) { mkdir($uploadDir, 0755, true); } $fileName = 'slip_' . date('Ymd_His') . '_' . bin2hex(random_bytes(4)) . '.' . $ext; $destPath = $uploadDir . $fileName; if (!move_uploaded_file($file['tmp_name'], $destPath)) { http_response_code(500); echo json_encode(['success' => false, 'message' => 'ไม่สามารถบันทึกไฟล์ได้ กรุณาลองใหม่อีกครั้ง']); exit; } echo json_encode([ 'success' => true, 'path' => 'uploads/slips/' . $fileName, 'message' => 'อัปโหลดสลิปเรียบร้อยแล้ว' ]);
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings