需要将照片上传添加到我现有的mySQL脚本中

时间:2012-04-28 13:48:11

标签: php mysql image upload blob

我需要上传我插入mySQL的每条记录的照片。我已经制作了一个基本的插入脚本。如何修改现有脚本,以便我可以在每个记录插入中包含一个图像。图像可以是任何形状或大小。非常简单。我简化了照片的形式。任何帮助将不胜感激。

我在根目录中为照片创建了一个名为“photos”的文件夹。

<?
$order = "INSERT INTO reg_add (connect_date, 
   reg, 
   first_name, 
   last_name)

VALUES

('$_POST[connect_date]', 
     '{$_POST[reg]}nv', 
     '$_POST[first_name]', 
     '$_POST[last_name]')";

$new_image = 'photos/'.basename( $_FILES['image']['name']);
    if(move_uploaded_file($_FILES['image']['tmp_name'], $new_image)) {
        // The images was uploaded
  } else{
header("location: reg_add_fail_IMAGE.php"); 
}

$result = mysql_query($order);
?>

FORM:

<form id="form_register" method="POST" action="reg_add.php">

   <input class="req-string bx short" type="text" name="connect_date" id="connect_date">
   <input type="hidden" name="MAX_FILE_SIZE" value="100000">
   <input class="req-string bx long caps" type="text" name="reg" id="reg">
   <input class="req-string bx long" type="text" name="first_name">
   <input class="bx long" type="text" name="last_name">

   Choose a image to upload: <input name="image" type="file">
   <input id="rbSubmit" class="rb2 rbSubmit" type="submit" value="submit">
</form>

1 个答案:

答案 0 :(得分:0)

首先,您无法使用<textarea>

上传图片

<强> HTML

<form action="savedata.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a image to upload: <input name="image" type="file" /><br />
    <input type="submit" value="Submit" />
</form>

请注意,请务必加入enctype="multipart/form-data,以便将图片与表单一起发送。

<强> PHP 当具有FILE的表单发送到PHP脚本时,该文件存储在服务器上的临时位置,变量$_FILE可用。此变量保存有关此文件的信息,临时名称和实际名称,大小等。

您需要做的是将上传的图像移动到您想要放置的目录:

// This will be the location for the image
$new_image = 'photos/'.basename( $_FILES['image']['name']);

if(move_uploaded_file($_FILES['image']['tmp_name'], $new_image)) {
   // The images was uploaded
} else{
    // The image failed to upload
}

现在,您可以将$new_image保存到数据库,以便参考图像位置。

您应该考虑的几件事

  • 检查是否存在文件名已存在的文件
  • 如果每个数据库行最多有1个图像,则可以使用数据库INSERT中的id命名图像。为此,您需要先插入数据,然后使用{{1获取最后一个插入ID INSERT查询后立即执行。然后将其合并到变量`$ new_image'