如何通过表单将照片上传到现有的mySQL

时间:2012-04-28 05:22:03

标签: php jquery mysql blob

我有一个用于基本客户端配置文件的现有mySQL数据库。我需要为每条记录添加一张图片。

我有一个带有输入和textareas的表单来创建记录。我知道照片字段是blob,但如何在现有表单中创建上传?关于从哪里开始的任何建议?

jquery会让这更容易实现吗?

感谢。

埃里克

3 个答案:

答案 0 :(得分:1)

我认为更好的方法是为每个配置文件上传图像,而不是使用mysql db中的blob来存储图像。您可以检查copymove_uploaded_file php函数以上传文件。如果需要,您可以稍后调整图像大小。您必须将图标字段从blob更改为varchar。

感谢。

答案 1 :(得分:1)

我所做的是像一个名为用户的表格,其中包含一个名为image_id的列,然后是另一个名为 images_users 的表格,其中包含{{1}列},iduser_id。我有一个PHP表单,用户可以上传他们的图像。表单将重命名文件名(例如:mypicture.jpg,但保留扩展名)到images_users表的下一行id。

file

确定表单中的文件扩展名,然后设置$getnewimageid = mysql_query("SELECT id FROM images_users ORDER BY id DESC LIMIT 1", $connection); $rownewimageid = mysql_fetch_assoc($getnewimageid); $new_image_id = $rownewimageid['id']; $new_image_id = ($new_image_id + 1);

所以文件从mypicture.jpg重命名为$ new_image_id.jpg(例如:102.jpg);

(我知道这不是解释如何实际操作,我只想解释如何开始)

然后表单执行2次mysql查询来存储图像并将图像分配给用户

$new_image_file = "$new_image_id.$extension"

INSERT INTO images_users (id, user_id, file) VALUES ($new_image_id, $user_id, $new_file_name)

之后您可以轻松地为特定用户显示要显示的文件。用户甚至可以通过在images_users表中有多行来拥有多个图像,其中user_id =他们的用户ID。您可以通过

显示所有图像
UPDATE users SET image_id = $new_image_id

答案 2 :(得分:0)

出于性能目的,我从未将照片作为blob上传到mySql。相反,我将图片的路径上传到mySql并使用上传类将图片上传到服务器(类似于此http://www.verot.net/php_class_upload.htm)。只需添加一个现有输入,在表单标记的末尾添加“enctype =”multipart / form-data“”(表单enctype =“multipart / form-data”method =“post”),实现该类,然后执行您的验证检查POST回来以确保用户添加了文件,以便它成功更新到数据库。

PHP:

if(isset($_POST['upload']))
{
include_once('class.upload.php');
if($_FILES['photo']['size'][0] != 0) //check to see if photo is empty{

    //place existing code for data upload here but add photo filepath here

    $handle = new Upload($file);
    if ($handle->uploaded) { //if upload was successful
        $handle->file_new_name_body   = $file['name'];
        $handle->Process("./photos/");
    }
}

HTML:

<form name="form" id="form" action="form.php" enctype="multipart/form-data" method="post">
<input type="file" id="photo" name="photo" accept="gif|jpg|jpeg|png"/>              
<button type="submit" class="button" name="upload" id="upload">Upload</button>

对于现有照片,只需将其个人资料图片作为default.png,然后将其引导至与上述相同的更新表单。应该工作得很好。