用户的配置文件图片用php

时间:2011-10-14 22:58:22

标签: php sql

我想在用户注册或在他/她的个人资料中为用户上传头像?我的理解是你需要在一个位置路径中“保存”图像,然后在想要显示时调用img的名字?

我是否必须更改我的用户表才能拥有与每个注册用户相关联的唯一图片?这是我当前的用户表...

+-------------------------------------------------------------------------+
|                                   users                                 |
+---------+-------------+-----------+------------+-----------+------------+
| user_id |  user_name  | user_pass | user_email | user_date | user_level |
+---------+-------------+-----------+------------+-----------+------------+
|         |             |           |            |           |            |
|         |             |           |            |           |            |
|         |             |           |            |           |            |
|         |             |           |            |           |            |
+---------+-------------+-----------+------------+-----------+------------+

我必须为每个用户的专业文件图片添加额外的列吗?以及如何看待?

上传图片的最佳位置在哪里?在用户的个人资料中或在注册期间?这是我要在用户的个人资料中或在注册期间添加的代码...我有这个简单的表单。

<form action="picUpload.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename: </label>
    <input type="file" name="file" id="file"/>
    <br />
    <input type="submit" name="submit" value="Submit" />
</form>

然后picUpload.php

<?php
    if((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    && ($_FILES["file"]["size"] < 50000))

    {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return code: " . $_FILES["file"]["error"] . "<br/>";
        }
        else
        {
            echo "Upload: " . $_FILES["file"]["name"] . "<br/>";
            echo "Type: " . $_FILES["file"]["type"] . "<br/>";
            echo "Size: " . $_FILES["file"]["size"] / 1024 . " Kb<br/>";
            echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br/>";

            if(file_exists("upload/" . $_FILES["file"]["name"]))
            {
                echo $_FILES["file"]["name"] . " already exists!";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"],
                "upload/" . $_FILES["file"]["name"]);
                echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
            }
         }
     }
     else
     {
         echo "Invalid file!";
     }
?>

如何将其放入数据库中,如何在php文件中调用它?

谢谢!

4 个答案:

答案 0 :(得分:2)

保存$_FILES["file"]["name"]的名称并将其保存在user_profile_pic(表格中的新列)中。如果您不想修改此表,则可以创建一个新表,该表具有此表的user_id foriegn键,而不是user_profile_pic列。

答案 1 :(得分:1)

使用户ID可以访问用户图像。

另外,请考虑使用PHP GD调整图像大小,并保留已调整大小的图像的缓存。

答案 2 :(得分:0)

只需在数据库中为user_pic创建一个单独的字段,并将上传文件的路径存储在那里。如果要显示它,只需将图像的href设置为数据库中的文件即可。当然,是的,你需要有一个单独的专栏,这是最逻辑和最简单的方法!

所以你的数据库就像:

+--------------------------------------------------------------------------------------+
|                                   users                                 |            |
+---------+-------------+-----------+------------+-----------+------------+------------+
| user_id |  user_name  | user_pass | user_email | user_date | user_level | user_pic   |
+---------+-------------+-----------+------------+-----------+------------+------------+
|         |             |           |            |           |            |            |  
|         |             |           |            |           |            |            |
|         |             |           |            |           |            |            |
|         |             |           |            |           |            |            |
+---------+-------------+-----------+------------+-----------+------------+------------+

要在数据库中存储内容,您需要查询SQL。这与你的SQL类型有所不同!当你想调用文件名时再次相同。但是你应该知道,当你在一个页面上创建一个新用户或输出某个用户时,你会做的其他过程!

答案 3 :(得分:0)

要清除问题,您只需将pic路径存储在数据库中,而不是实际的图片。