将图像和信息存储到数据库中并使用MySql Query检索以使用PHP显示

时间:2015-08-08 11:42:05

标签: php mysql

我想将表单和图像中的一些信息存储到数据库中。

例如:

    <form name="form1" enctype="multipart/form-data" method="post" action="do_send.php">
  <label>
  <input type="text" name="name" id="name" />
  </label>

<label>

  <input type="text" name="age" id="age" />
  </label>


  <label>
  <input type="email" name="email" id="email" />
  </label>

  <label>
  <input type="file" name="my_file" />
  </label>
  <label>

  <input type="submit" name="button" value="Submit" />
  </label>
</form>

我想将所有这些存储到数据库中。我可以将数据存储在数据库中,但不知道如何存储图像。请告诉我,我该怎么做?

我还想使用MySql查询在另一个页面上显示数据和图像。

我怎样才能完成这两项任务。我知识有限,因为我是首发。请引导我提供代码和一些解释。

2 个答案:

答案 0 :(得分:0)

使用move_uploaded_file()函数

在php项目目录中创建新文件夹以存储图像。

仅存储数据库中的图像路径。

$fileName = $_FILES["uploaded_file"]["name"]; $fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"]; $pathAndName = "uploads/".$fileName; $moveResult = move_uploaded_file($fileTmpLoc, $pathAndName); 在数据库中存储$ pathAndName变量值。 “uploads”是文件夹名称。

答案 1 :(得分:0)

使用buffering + imagepng

do_send.php中你可以试试这样的事情:

$image = imagecreatefromstring($my_file);

// start buffering
ob_start();
imagepng($image);
$contents = ob_get_contents();
ob_end_clean();

$str_base64_img = base64_encode($contents);

imagedestroy($image);

在我看来,将图像数据直接存储在db中并且base64_encode放大到数据的33%并不是一个好的实践。

您应该使用托管图像系统并在数据库中存储图像的路径。