i have stored in the db some images and when i try to call them for download i get corrupt file here is the code for display and download

<?php
// Connect to the database
$dbLink = new mysqli('127.0.0.1', 'root', 'qazwsx123', 'diaspora_v2');
if(mysqli_connect_errno()) {
    die("MySQL connection failed: ". mysqli_connect_error());
}

// Query for a list of all existing files
$sql = 'SELECT `id`, `nume`, `prenume`, `name`, `mime`, `size`, `created` FROM `inregistrari`';
$result = $dbLink->query($sql);

// Check if it was successfull
if($result) {
    // Make sure there are some files in there
    if($result->num_rows == 0) {
        echo '<p>There are no files in the database</p>';
    }
    else {
        // Print the top of a table
        echo '<table width="100%">
                <tr>
                    <td><b>Nume</b></td>
                    <td><b>Prenume</b></td>
                    <td><b>Name</b></td>
                    <td><b>Mime</b></td>
                    <td><b>Size (bytes)</b></td>
                    <td><b>Created</b></td>
                    <td><b>&nbsp;</b></td>
                </tr>';

    // Print each file
    while($row = $result->fetch_assoc()) {
        echo "
            <tr>
                <td>{$row['nume']}</td>
                <td>{$row['prenume']}</td>
                <td>{$row['name']}</td>
                <td>{$row['mime']}</td>
                <td>{$row['size']}</td>
                <td>{$row['created']}</td>
                <td><a href='download.php?id={$row['id']}'>Download</a></td>
            </tr>";
    }

    // Close table
    echo '</table>';
}

// Free the result
$result->free();
}
else
{
    echo 'Error! SQL query failed:';
    echo "<pre>{$dbLink->error}</pre>";
}

// Close the mysql connection
$dbLink->close();
?>

download.php

<?php
// Make sure an ID was passed
if(isset($_GET['id'])) {
// Get the ID
    $id = intval($_GET['id']);

// Make sure the ID is in fact a valid ID
if($id <= 0) {
    die('The ID is invalid!');
}
else {
    // Connect to the database
    $dbLink = new mysqli('127.0.0.1', 'root', 'qazwsx123', 'diaspora_v2');
    if(mysqli_connect_errno()) {
        die("MySQL connection failed: ". mysqli_connect_error());
    }

    // Fetch the file information
    $query = "
        SELECT `mime`, `name`, `size`, `data`
        FROM `inregistrari`
        WHERE `id` = {$id}";
    $result = $dbLink->query($query);

    if($result) {
        // Make sure the result is valid
        if($result->num_rows == 1) {
        // Get the row
            $row = mysqli_fetch_assoc($result);

            // Print headers
            header("Content-Type: ". $row['mime']);
            header("Content-Length: ". $row['size']);
            header("Content-Disposition: attachment; filename=". $row['name']);

            // Print data
            echo $row['data'];
        }
        else {
            echo 'Error! No image exists with that ID.';
        }

        // Free the mysqli resources
        @mysqli_free_result($result);
    }
    else {
        echo "Error! Query failed: <pre>{$dbLink->error}</pre>";
    }
    @mysqli_close($dbLink);
}
}
else {
    echo 'Error! No ID was passed.';
}
?>

the only thing that works is .txt files, and sometimes i get to download download.php
I tried other stuff and still could not make it work the PHP version is XAMPP
[PHP: 5.2.12]

here is the db
CREATE TABLE IF NOT EXISTS inregistrari (
name varchar(255) DEFAULT '',
mime varchar(50) DEFAULT '',
size bigint(20) unsigned DEFAULT '0',
data longblob,
created datetime NOT NULL,)

    Something quick to try is to remove the closing "?>" on the download file, in order to ensure that no newline or other white-space characters after it are being included as part of the output.

      i checked for white spaces there are none...this is so irritating cuz i cannot see where the problem isπŸ™

        Only thing I can think of that might (stress on "might") make a difference would be to add this header:

        header("Content-Transfer-Encoding: binary");
        
          Write a Reply...