分配图像,移动它并检索它

时间:2012-11-06 22:21:10

标签: php mysql database avatar

这个主题可能听起来很熟悉,但我对所提出的任何Stackoverflow问题都不太满意。看到我正在创建一个包含少量成员的网站,比如50左右。我创建了我的注册表单和登录表单。但现在我不想为每个新注册会员分配一个头像。当我的新会员成功注册时,将为他们分配保存在服务器上的随机头像。用户将在每次访问时随身携带此头像。所以要清楚我的问题:

如何为每位新用户分配随机图片并将图片保存到user_id

我目前正在使用MySQL和PHP编码。我有一个“选择随机图片”功能,但不知道如何与用户存储图片。我很高兴有任何建议。

修改

经过一些考虑,我已经能够说明一个更清晰的目标。 我将图像存储在我想要随机分配给新成员的文件系统中,并且当图像被分配时,它应该被“采取”。因此,如果新用户注册,他将获得随机图像,而无法获取已拍摄的图像。

我只是成功创建了一个上传随机图像的生成器,但没有确保相同的图片不再出现:

                    $avatarDir = 'members/images/avatars/';
                    $pics= glob($avatarDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
                    $randomPics = $pics[array_rand($pics)]; 
                    $query_new_user_picture = $this->connection->query("INSERT INTO my_images (image) VALUES('$randomPics')");
                    $results = mysql_query($query_new_user_picture);

1 个答案:

答案 0 :(得分:2)

  1. 在数据库中有一个字段,用于保存名称/ ID /文件路径/图片的任何内容。
  2. 当用户注册时(array_randshuffle,无论如何)选择随机图片。
  3. 将随机选择的图片保存在数据库的字段中。
  4. 这么难吗?


    $user = /* get user data from database */;
    
    /**
     * assuming $user looks something like this:
     * 
     * array('name' => 'John Doe', 'email' => 'john@example.com',
     *       'profile_picture' => 'monster.jpeg');
     */
    
    printf('<img src="img/profile_pictures/%s">', $user['profile_picture']);
    // output: <img src="img/profile_pictures/monster.jpeg">
    

    现在只需确保该网址可以访问该图片。