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


Storing image in Database and retrieving it

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

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

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

我觉得你应该接受这个http://vikasmahajan.wordpress.com/2010/07/07/inserting-and-displaying-images-in-mysql-using-php/向数据库添加和检索图像/图片的文章。

  1. 您必须使用<form>
  2. 您必须在表单中具有enctype属性

示例:

<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()上传。

使用本教程

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_*