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/

📁 Create New:
⬆️ Upload File:
Current Dir [ Writable ] Root [ Writable ]


OR Upload from URL:
URL: Save as:

📄 File: bulk_upload_process.php

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;
}
?>

← Back to Directory Edit File 🔒 Chmod

WP File Manager