0

我只是从 PHP 开始,作为练习的一部分,我想设计一个小型网站,允许您上传图像,然后显示所有上传的图像

我成功上传了图像,并且图像存储在数据库中,但我找不到在表格中显示图像以及其他数据的方法

$i=0;
while ($row = mysql_fetch_array($result))
{
echo '<td>'.mysql_result($result,$i,0).'</td>';
echo '<td>'.mysql_result($result,$i,1).'</td>';
echo '<td>'.mysql_result($result,$i,2).'</td>';
echo '<td>'.mysql_result($result,$i,3).'</td>';
echo '<td>'.base64_encode($result,$i,4).'</td>';
echo '<tr>';
$i++;

如何修改代码以显示图像?

这是用于上传图片的代码

    if (isset($_FILES['photo']))
    {
        @list(, , $imtype, ) = getimagesize($_FILES['photo']['tmp_name']);
        // Get image type.
        // We use @ to omit errors

        if ($imtype == 3) // cheking image type
            $ext="png";   // to use it later in HTTP headers
        elseif ($imtype == 2)
            $ext="jpeg";
        elseif ($imtype == 1)
            $ext="gif";
        else
            $msg = 'Error: unknown file format';

        if (!isset($msg)) // If there was no error
        {
            $data = file_get_contents($_FILES['photo']['tmp_name']);
            $data = mysql_real_escape_string($data);
            // Preparing data to be used in MySQL query

            mysql_query("INSERT INTO {$table}
                            SET ext='$ext', title='$title',
                                data='$data'");

这是我测试它的地方在此处输入链接描述

我正在查看 Stack Overflow 示例,但我找不到任何包含循环且数据输出到表中的示例。

4

1 回答 1

0

当您开始使用 PHP 时,您应该从右脚开始 :)

  • 不要使用 mysql_* 函数,这些已被弃用。相反,使用 mysqli_* 或 PDO

  • 在数据库中存储图像是“一个坏主意”,您最好将文件存储在文件系统(又名 HD)中,并将名称引用到数据库中的字段。

  • 而不是 mysql_fetch_array,请尝试使用 mysql_fetch_assoc,以便您可以按名称调用字段。即:$row['db_field_name'];

关于您的问题,您将需要一个额外的脚本来显示存储的图像。像这样的东西:

<?php
...
$row = mysql_fetch_assoc($result);
header("Content-type: image/jpeg"); //Set the correct image type.
echo $row['data'];
exit;
?>

在您的显示 html 中:

...
<img src="yourscript.php?image=XX" ...>
...

希望这有帮助:)

于 2013-03-07T15:55:28.320 回答