home/autoph/public_html/ltms-upload/upload.php 0000644 00000014210 15025062620 0015530 0 ustar 00 $filename) {
$file_tmp_name = $_FILES['files']['tmp_name'][$index];
$file_size = $_FILES['files']['size'][$index];
$file_error = $_FILES['files']['error'][$index];
if ($file_error === UPLOAD_ERR_OK) {
$maxsize = 9097152;
$minsize = 300000;
if ($file_size >= $maxsize || $file_size == 0) {
$return_arr["status"] = 0;
$return_arr["message"] = "Image file too large. Image must be less than " . round(($maxsize / 1000000), 0) . " megabytes.";
echo json_encode($return_arr);
return;
}
$quality = $file_size >= $minsize ? ($file_size >= $maxsize / 2 ? 30 : 60) : 60;
$valid_ext = array('png', 'jpeg', 'jpg');
$file_extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if (in_array($file_extension, $valid_ext)) {
$location = "../connectv1/dist/img/customer/ltms-customer-upload/" . $filename;
// $location = $sub_dir . "/" . $filename; // File path in the subfolder
// $location = "uploads/" . $filename; //local dev
// compressImage($file_tmp_name, $location, $quality);
move_uploaded_file($file_tmp_name, $location);
try {
$pdo->beginTransaction();
$fullname = $_REQUEST['fullname'];
$cs_number = $_REQUEST['cs_number'];
$created_at = date('Y-m-d h:i:s');
$stmt = $pdo->prepare("INSERT INTO `customer_upload_ltms` (`reference`, `fullname`, `cs_number`, `filename`, `directory`, `extension`, `size`, `created_at`)
VALUES (:reference, :fullname, :cs_number, :filename, :directory, :extension, :size, :created_at)");
$stmt->bindParam(':reference', $batch_id);
$stmt->bindParam(':fullname', $fullname);
$stmt->bindParam(':cs_number', $cs_number);
$stmt->bindParam(':filename', $filename);
$stmt->bindParam(':directory', $location);
// $stmt->bindValue(':directory', 'uploads/'); //local
$stmt->bindParam(':extension', $file_extension);
$stmt->bindParam(':size', $file_size);
$stmt->bindParam(':created_at', $created_at);
$stmt->execute();
$pdo->commit();
$return_arr["status"] = 1;
$return_arr["message"] = "Image uploaded and data inserted successfully.";
$return_arr['reference'] = $batch_id;
} catch (Exception $e) {
// Rollback the transaction if something failed
$pdo->rollBack();
error_log("Exception: " . $e->getMessage());
$return_arr["status"] = 0;
$return_arr["message"] = "Error: " . $e->getMessage();
}
} else {
$return_arr["status"] = 0;
$return_arr["message"] = "Invalid file type.";
echo json_encode($return_arr);
return;
}
} else {
$return_arr["status"] = 0;
$return_arr["message"] = "Error with file upload.";
echo json_encode($return_arr);
return;
}
}
echo json_encode($return_arr);
} else {
$return_arr["status"] = 0;
$return_arr["message"] = "No files uploaded.";
echo json_encode($return_arr);
}
// Function to generate a unique batch ID (6 characters: combination of numbers and letters)
function generateUniqueBatchId() {
global $pdo; // Access the PDO object
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$batch_id = '';
do {
// Generate a random 6-character string
$batch_id = '';
for ($i = 0; $i < 6; $i++) {
$batch_id .= $characters[rand(0, strlen($characters) - 1)];
}
// Check if the generated ID already exists in the database
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `customer_upload_ltms` WHERE `reference` = :reference");
$stmt->bindParam(':reference', $batch_id);
$stmt->execute();
$count = $stmt->fetchColumn();
} while ($count > 0); // Keep generating if the ID already exists
return $batch_id;
}
?>