|
Server : LiteSpeed System : Linux terra.hostitbro.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64 User : outerorb ( 1091) PHP Version : 8.1.34 Disable Function : mail Directory : /home2/outerorb/assetradar.outerorbittech.com/admin/ | |
|
Path: /home2/outerorb/assetradar.outerorbittech.com/admin/bulk_upload_process.php
Size: 2.51 KB
Permissions: 0666
<?php
require_once __DIR__ . '/../inc/auth.php';
require_once __DIR__ . '/../config.php';
require_login();
$u = current_user();
require_admin();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!isset($_FILES['csv_file']) || $_FILES['csv_file']['error'] !== UPLOAD_ERR_OK) {
die('Error uploading file.');
}
$fileTmpPath = $_FILES['csv_file']['tmp_name'];
$file = fopen($fileTmpPath, 'r');
if (!$file) {
die('Failed to open uploaded file.');
}
// Read header row
$header = fgetcsv($file);
if (!$header) {
die('Empty CSV file.');
}
// Expected columns
$expectedColumns = ['ID', 'Asset Tag', 'Name', 'Category', 'Brand/Model', 'Serial', 'Condition', 'Assigned To'];
// Validate header columns
foreach ($expectedColumns as $index => $colName) {
if (!isset($header[$index]) || trim($header[$index]) !== $colName) {
die('Invalid CSV header format.');
}
}
// Prepare statement for inserting items
$stmt = $mysqli->prepare('INSERT INTO items (asset_tag, item_name, category_id, brand_model, serial_number, condition_status, assigned_to) VALUES (?, ?, (SELECT id FROM categories WHERE name = ? LIMIT 1), ?, ?, ?, (SELECT id FROM users WHERE name = ? LIMIT 1))');
if (!$stmt) {
die('Failed to prepare statement: ' . $mysqli->error);
}
$insertedCount = 0;
$errors = [];
while (($row = fgetcsv($file)) !== false) {
// Map CSV columns to variables
list($id, $assetTag, $itemName, $categoryName, $brandModel, $serialNumber, $conditionStatus, $assignedName) = $row;
// Bind parameters and execute insert
$stmt->bind_param('sssssss', $assetTag, $itemName, $categoryName, $brandModel, $serialNumber, $conditionStatus, $assignedName);
if ($stmt->execute()) {
$insertedCount++;
} else {
$errors[] = "Failed to insert row with Asset Tag: $assetTag. Error: " . $stmt->error;
}
}
fclose($file);
$stmt->close();
// Show result
echo "<h3>Bulk Upload Result</h3>";
echo "<p>Inserted $insertedCount rows successfully.</p>";
if (!empty($errors)) {
echo "<p>Errors:</p><ul>";
foreach ($errors as $error) {
echo "<li>" . htmlspecialchars($error) . "</li>";
}
echo "</ul>";
}
echo '<p><a href="inventory.php">Back to Inventory</a></p>';
} else {
header('Location: bulk_upload.php');
exit;
}
?>