Quantcast
Channel: Active questions tagged ubuntu - Stack Overflow
Viewing all articles
Browse latest Browse all 6093

PHP-Script failing to write filenames into csv

$
0
0

I have a PHP script running on a web server for a university project. I have a corresponding app sending pictures and additional data to the server. The script is supposed to take the data, write it into a CSV file, and save the pictures. The problem is that I can't get my script to write the image names into the CSV files. The pictures are correctly named, but I can't get the names into the CSV file.

The csv still has the "test1", "test2", "test3" values.

What am I missing?

<?php// Set CORS headersheader("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Methods: GET, POST, OPTIONS");header("Access-Control-Allow-Headers: Content-Type, Authorization");if ($_SERVER['REQUEST_METHOD'] === 'POST') {    $postData = file_get_contents('php://input');    $decodedData = json_decode($postData, true);    // Initialize variables for image paths and filenames    $imageFilePaths = [];    $imageFileNames = ["test1","test2","test3"]; // Array for image filenames    // Check file uploads, process up to three images    $count = 0;    $testvariable = null; // Initialize variable outside foreach loop    foreach ($_FILES as $key => $value) {        if ($count >= 3) break; // Process only up to three images        if ($value['error'] === UPLOAD_ERR_OK) {            $imageTmpName = $value['tmp_name'];            $imageFileName = $value['name']; // Original filename of the image            $testvariable = $imageFileName; // Update variable with the filename of the first image            $imageFilePath = '/var/www/html/geodata/images/' . $imageFileName;             // Save image            if (!move_uploaded_file($imageTmpName, $imageFilePath)) {                echo json_encode(['status' => 'error', 'message' => 'Error saving the image']);                exit;            }            $imageFilePaths[] = $imageFilePath; // Add file path to the array            $imageFileNames[] = $value['name']; // Add filename to the array            $count++;        }    }    if ($decodedData) {        // Extract data from decoded JSON        $reportId = $decodedData['report']['reportId'] ?? '';        $userId = $decodedData['report']['userId'] ?? '';        $timestamp = $decodedData['report']['timestamp'] ?? '';        $latitude = $decodedData['report']['latitude'] ?? '';        $longitude = $decodedData['report']['longitude'] ?? '';        $deficiencyType = $decodedData['report']['deficiencyType'] ?? '';        $onPublicProperty = $decodedData['report']['onPublicProperty'] ?? '';        $additionalInformation = $decodedData['report']['additionalInformation'] ?? '';        // Write data to the CSV file        $csvFilePath = '/var/www/html/geodata/data.CSV';        $csvFile = fopen($csvFilePath, 'a');        if ($csvFile) {            // Check if images were uploaded            if (!empty($imageFileNames)) {                // Add filenames of all uploaded images to the dataset                $data = [$reportId,$testvariable, $userId, $timestamp, $latitude, $longitude, $deficiencyType, $onPublicProperty, $additionalInformation];                $data = array_merge($data, $imageFileNames); // Use filenames instead of file paths                fputcsv($csvFile, $data);            } else {                fputcsv($csvFile, [$reportId, $userId, $timestamp, $latitude, $longitude, $deficiencyType, $onPublicProperty, $additionalInformation]);            }            fclose($csvFile);        } else {            echo json_encode(['status' => 'error', 'message' => 'Error writing to the CSV file']);            exit;        }        // Add data to the HTML content        $htmlFilePath = '/var/www/html/index.html';        $htmlContent = file_get_contents($htmlFilePath);        $appendedContent = "<p>Report ID: " . $reportId . ", User ID: " . $userId . ", Timestamp: " . $timestamp . "</p>\n";        $updatedHtmlContent = $htmlContent . $appendedContent;        // Save updated content back to index.html        file_put_contents($htmlFilePath, $updatedHtmlContent);        echo json_encode(['status' => 'success', 'message' => 'Data successfully written']);    } else {        echo json_encode(['status' => 'error', 'message' => 'Invalid JSON format']);    }} else {    echo json_encode(['status' => 'error', 'message' => 'No POST request']);}?>

Viewing all articles
Browse latest Browse all 6093

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>