将图像存储在数据库中并检索它

时间:2013-11-25 10:29:04

标签: php html

在PHP中,如果我的表单中有图像上传选项,那么我如何将该图像存储在数据库中,并根据需要如何检索它。我有一个表格,其中包含名称年龄电子邮件等字段和一个字段是关于用户的形象。那么请告诉我如何上传图片并将其存储并在下一页中再次检索。我可以在HTML代码中使用简单的输入标记并将类型声明为文件。

<body>
<input type="file" accept="image/jpeg" />
<input type="submit" value="Submit Form">
</body>

2 个答案:

答案 0 :(得分:1)

  1. 您必须使用<form>
  2. 您必须在表单中包含enctype属性。
  3. 示例:

    <body>
      <form action='index.php' method='POST' enctype='multipart/form-data'>
        <input type="file" name="img" accept="image/jpeg" />
        <input type="submit" name="submit_button" value="Submit Form" />
      </form>
    </body>
    

    您必须使用$ _FILES,然后使用move_uploaded_file()上传。

    Use this tutorial

    PS:你为什么要把它上传到数据库?为什么不保存到服务器?

    您应该将其存储在服务器上,并写入DB的路径:

    if (is_uploaded_file($_FILES['img']['tmp_name'])) {
      move_uploaded_file($_FILES['img']['tmp_name'], 'some_folder_with_images/'.$_FILES['img']['name']);
    }
    

    然后这将是您的查询(示例),当然您应该转义文件名,或者只是在服务器上生成您自己的存储文件的文件名:

    $query = "INSERT INTO images (image_path) 
              VALUES ('".$_FILES['img']['name']."')";
    

    PS:使用mysqli_*,不推荐使用mysql_*

答案 1 :(得分:1)

Sunil,如果要将图像插入/上传到数据库,则必须使用blob字段类型来插入图像。

我觉得你应该通过这篇http://vikasmahajan.wordpress.com/2010/07/07/inserting-and-displaying-images-in-mysql-using-php/文章来添加和检索图像/图片到db。