使用php显示通过mysql数据库保存为blob的图像(通过链接和新窗口)

马塞洛·塔塔耶(Marcelo Tataje)

我正在用PHP实现功能,其中大部分已经实现。我是PHP的新手,所以我不太习惯。

但是我的示例的目的是将图像存储在数据库中(具有一些其他属性,例如id和name)。然后,每当我将图像以blob的形式保存到数据库时,它将在表中列出记录,但是除了在表中显示图像之外,我还应该看到一个链接ilke“ See picture”,每当我打开该链接时,就会出现一个弹出窗口包含存储在数据库中的图像。

我的表有三列:id(int),name(varchar)和img(blob)。

我尝试了以下操作,但不起作用:

echo "<td><a href='#openModal'><img src='" + $row[2] + "'  />Ver imagen</a></td>";

我知道我现在还没有使用最佳实践,但是我会重构它,首先我需要它能正常工作,到目前为止,我有:

<html>
<head><title>Ejemplo de carga de imagen</title></head>
<body>

<form enctype="multipart/form-data" action=
"<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<p>Id</p><input type="text" name="id" /><br/>
<p>Imagen</p><input name="userfile" type="file" />
<input type="submit" value="Submit" />
</form>

<?php

if(!isset($_FILES['userfile']))
{
    echo '<p>Por favor seleccione un archivo</p>';
}
else
{
    try {
    $msg= upload();
    echo $msg;
    }
    catch(Exception $e) {
    echo $e->getMessage();
    echo 'La imagen no pudo ser cargada';
    }
}

function upload() {
    include "file_constants.php";
    $maxsize = 10000000;

    if($_FILES['userfile']['error']==UPLOAD_ERR_OK) {

        if(is_uploaded_file($_FILES['userfile']['tmp_name'])) {    

            if( $_FILES['userfile']['size'] < $maxsize) {  

                 $finfo = finfo_open(FILEINFO_MIME_TYPE);
                if(strpos(finfo_file($finfo, $_FILES['userfile']['tmp_name']),"image")===0) {    
                    $imgData =addslashes (file_get_contents($_FILES['userfile']['tmp_name']));

                    mysql_connect($host, $user, $pass) OR DIE (mysql_error());

                    mysql_select_db ($db) OR DIE ("No se puede seleccionar bd".mysql_error());

            $id = (int)$_POST['id'];
                    $sql = "INSERT INTO tb_doc_img
                    (codigo, descripcion, data)
                    VALUES
                    ('$id', '{$_FILES['userfile']['name']}', '{$imgData}');";

                    mysql_query($sql) or die("Error in Query: " . mysql_error());
                    $msg='<p>Imagen guardada en bd</p>';


            $result = mysql_query("SELECT * FROM tb_doc_img");

            if (!$result) {
            die("Query to show fields from table failed");
            } else {
            echo "<table border='1'>";
            while($row = mysql_fetch_row($result))
            {   
                echo "<tr>";
                echo "<td>$row[0]</td>";
                    echo "<td>$row[1]</td>";

                echo "<td><a href='#openModal'><img src='" + $row[2] + "'  />Ver imagen</a></td>";
                echo "</tr>";
            }
            echo "</table>";
            }

$fields_num = mysql_num_fields($result);

                }
                else
                    $msg="<p>Archivo seleccionado no es una imagen.</p>";
            }
             else {
                $msg='<div>Tamaño de archivo muy grande</div>
                <div>El límete de carga es '.$maxsize.' bytes</div>
                <div>Archivo '.$_FILES['userfile']['name'].' con peso '.$_FILES['userfile']['size'].
                ' bytes</div><hr />';
                }
        }
        else
            $msg="No se pudo cargar el archivo.";

    }
    else {
        $msg= file_upload_error_message($_FILES['userfile']['error']);
    }
    return $msg;
}

function file_upload_error_message($error_code) {
    return 'Error al procesar la imagen';
}
?>
</body>
</html>

如果有人可以帮助我,我会非常感激。提前致谢。

jnsr_acumen

尝试以下逻辑

    <?php
    $image = mysql_query("SELECT * FROM images");   
    ?>

循环获取ID

    <?php
    while($row = mysql_fetch_assoc($image))
    {
    echo '<a href="imgage.php?id='.$row[1].'">image_name</a>';
    }
    ?>

然后创建页面

image.php

    <?php
    $query = mysql_query("SELECT image FROM images WHERE id = ".$_GET['id']);
    $row = mysql_fetch_assoc($query);
    header("Content-type: image/jpeg");
    echo $row['image'];
    ?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 MySQL 数据库中获取保存为 BLOB 的图像时参数无效

来自分类Dev

PHP MYSQL->从MYSQL数据库显示保存为“日期”类型的日期

来自分类Dev

PHP MYSQL->从MYSQL数据库显示保存为“日期”类型的日期

来自分类Dev

通过PHP保存为MySQL TIME和DATE数据类型

来自分类Dev

通过PHP保存为MySQL TIME和DATE数据类型

来自分类Dev

PHP/MySQL 外键保存为 id=0 到数据库

来自分类Dev

通过JSON从mysql数据库获取BLOB图像

来自分类Dev

通过JSON从mysql数据库获取BLOB图像

来自分类Dev

通过数据库中的链接显示图像?(PHP/MYSQLI) 新手

来自分类Dev

通过PHP保存为XML

来自分类Dev

通过链接关联数据库和PHP

来自分类Dev

通过php从mysql数据库在网站上显示图像

来自分类Dev

Yii2将图像保存为base64数据库

来自分类Dev

如何将画布图像保存为数据库并生成 url

来自分类Dev

如何将图像文件夹路径存储到 MYSQL 数据库中并通过 PHP 和 XAMPP 在网页中显示图像?

来自分类Dev

使用 MySQL 工作台保存和显示数据库中的图像

来自分类Dev

使用gtk将当前窗口保存为图像

来自分类Dev

我想通过使用表显示MySQL数据库来检索数据,以与图像中显示的相同的方式进行排列

来自分类Dev

通过从mysql数据库获取图像来显示php文件中的一些图像

来自分类Dev

通过Mysql数据库显示信息

来自分类Dev

将PHP数据库中的ID保存为变量

来自分类Dev

通过Post方法将数据保存为JSON格式

来自分类Dev

如何使用Laravel将JSON元素保存为数据库中的记录?

来自分类Dev

Aerospike:将数据保存为blob还是使用“ bins”?

来自分类Dev

使用PHP从MySQL数据库显示图像

来自分类Dev

如何使用php显示来自数据库mysql的图像?

来自分类Dev

使用PHP从MySQL数据库显示图像

来自分类Dev

使用PHP从数据库通过mysqli从数据库检索图像不起作用

来自分类Dev

如何在HTML页面中使用php和mysql显示数据库中的图像

Related 相关文章

  1. 1

    从 MySQL 数据库中获取保存为 BLOB 的图像时参数无效

  2. 2

    PHP MYSQL->从MYSQL数据库显示保存为“日期”类型的日期

  3. 3

    PHP MYSQL->从MYSQL数据库显示保存为“日期”类型的日期

  4. 4

    通过PHP保存为MySQL TIME和DATE数据类型

  5. 5

    通过PHP保存为MySQL TIME和DATE数据类型

  6. 6

    PHP/MySQL 外键保存为 id=0 到数据库

  7. 7

    通过JSON从mysql数据库获取BLOB图像

  8. 8

    通过JSON从mysql数据库获取BLOB图像

  9. 9

    通过数据库中的链接显示图像?(PHP/MYSQLI) 新手

  10. 10

    通过PHP保存为XML

  11. 11

    通过链接关联数据库和PHP

  12. 12

    通过php从mysql数据库在网站上显示图像

  13. 13

    Yii2将图像保存为base64数据库

  14. 14

    如何将画布图像保存为数据库并生成 url

  15. 15

    如何将图像文件夹路径存储到 MYSQL 数据库中并通过 PHP 和 XAMPP 在网页中显示图像?

  16. 16

    使用 MySQL 工作台保存和显示数据库中的图像

  17. 17

    使用gtk将当前窗口保存为图像

  18. 18

    我想通过使用表显示MySQL数据库来检索数据,以与图像中显示的相同的方式进行排列

  19. 19

    通过从mysql数据库获取图像来显示php文件中的一些图像

  20. 20

    通过Mysql数据库显示信息

  21. 21

    将PHP数据库中的ID保存为变量

  22. 22

    通过Post方法将数据保存为JSON格式

  23. 23

    如何使用Laravel将JSON元素保存为数据库中的记录?

  24. 24

    Aerospike:将数据保存为blob还是使用“ bins”?

  25. 25

    使用PHP从MySQL数据库显示图像

  26. 26

    如何使用php显示来自数据库mysql的图像?

  27. 27

    使用PHP从MySQL数据库显示图像

  28. 28

    使用PHP从数据库通过mysqli从数据库检索图像不起作用

  29. 29

    如何在HTML页面中使用php和mysql显示数据库中的图像

热门标签

归档