0

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

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

<?
$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 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>
4

1 回答 1

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 个图像,您可以使用数据库中的 id 命名图像INSERT为此,您需要先插入数据,然后$id = mysql_insert_id();在 INSERT 查询之后立即使用最后一个插入 id。然后将其合并到变量“$new_image”中
于 2012-04-28T14:18:18.703 回答