0

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

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

jquery 会让这更容易完成吗?

谢谢。

埃里克

4

3 回答 3

1

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

谢谢。

于 2012-04-28T05:27:30.440 回答
1

我所做的是有一个名为 users 的表,其中有一个名为usersimage_id的表,然后是另一个名为images_users的表,其中包含id,user_idfile. 我有一个 php 表单,用户可以在其中上传他们的图片。该表单会将文件名(例如:mypicture.jpg,但保留扩展名)重命名为 images_users 表的下一行 id。

$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);

确定表单中的文件扩展名,然后设置$new_image_file = "$new_image_id.$extension"

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

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

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

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

UPDATE users SET image_id = $new_image_id

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

SELECT * FROM images_users WHERE user_id = $user_id

ETC

于 2012-04-28T05:45:52.213 回答
0

出于性能目的,我从不将照片作为 blob 上传到 mySql。相反,我将图片的路径上传到 mySql 并使用上传类(类似于http://www.verot.net/php_class_upload.htm)将图片上传到服务器。只需添加一个现有输入,在表单标签的末尾添加“enctype="multipart/form-data"”(form 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 并将它们定向到执行与上述相同操作的更新表单。应该可以正常工作。

于 2012-04-28T05:27:36.547 回答