我需要显示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> </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
但是我需要显示图像而不是这些数据。 怎么做。 请帮帮我
答案 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"];
}