显示BLOB数据

时间:2013-05-30 05:41:33

标签: php mysql

我需要显示BLOB数据。 list_files.php

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

// Query for a list of all existing files
$sql = 'SELECT `id`, `name`, `mime`, `size`, `created` FROM `file`';
$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>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['name']}</td>
                    <td>{$row['mime']}</td>
                    <td>{$row['size']}</td>
                    <td>{$row['created']}</td>
                    <td><a href='get_file.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();
?>

这是我显示数据的代码。 输出

Name            Mime              Size (bytes)             Created   
cubeatwork.jpg  image/jpeg  38717   2013-05-29 16:45:17 Download
9cube.jpg   image/jpeg  23187   2013-05-30 10:08:37 Download

但是我需要显示图像而不是这些数据。 怎么做。 请帮帮我

2 个答案:

答案 0 :(得分:0)

在将其打印为图像之前,您需要指定标题。 比如循环中的代码。

header('Content-Type: image/jpeg');

OR

header('Content-Type: '.$row['mime']);

echo $row['size']; // if 'size' is a blob type

希望这会对你有所帮助

答案 1 :(得分:0)

// Print each file
    while($row = $result->fetch_assoc()) {    
echo '<img alt="image" src="data:image/jpeg;base64,' .    chunk_split(base64_encode($row['size'])) . '">';
    }
OR  
header('Content-Type: image/jpeg');//
while($row = $result->fetch_assoc()) { 
  echo $row["size"];

}