将jpeg保存为blob并将其检索到mysql db

时间:2018-07-15 11:05:35

标签: php mysql blob

我观看了有关如何执行此操作的教程,但仍然无法将映像作为Blob上传到mysql。

我要允许用户选择图像。

    <form action="includes/submitImage.inc.php" method="POST" enctype="multipart/form-data">
        <input type="file" name="image1">
        <button type="submit" name="submit">Save Image</button>
    </form

在提交时,应将此图像发送到mysql db并将其另存为blob。 db字段名称为“ selectedImage”。

submitImage.inc.php的内容:

    <?php 

        include_once 'dbh.inc.php';
        $imageData1 = mysqli_real_escape_string(file_get_contents($_FILES['image1']['tmp_name']));
        $imageType1 = mysqli_real_escape_string($_FILES['image1']['type']);

        $sql = "UPDATE myDbTable SET selectedImage='$imageData1' WHERE id='1';";
        mysqli_query($conn, $sql);
        header("Location: ../home?edit=success");
        exit();
    ?>

这已被简化以简化问题。检查是否存在id = 1的行。代码完全可以在所有条件下运行,并且URL包含预期的“ home?edit = success”。所有其他字段(此处未包括)均按预期更新其值,但记录在selectedImage字段下显示“ [BLOB-0字节]”。

有什么想法吗?为了简化起见,我省略了与图像无关的任何代码,并且更改了字段名称。非常感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

直接将图像保存到数据库不是一个好主意。将上传的图像文件移动到安全目录中,然后将其路径或名称保存在数据库中,并通过从数据库中读取保存的路径来检索它。如果您想做坏事并将图像保存到数据库 首先确保dbh.inc.php文件正确连接到数据库。启用调试模式以查看可能的错误消息。