繁体   English   中英

如何显示用户个人资料图片

[英]How to show users profile picture

我想在登录时显示我的用户个人资料图片。 当他们单击change profile picture按钮时,他们的图片将保存到目录中,然后保存到数据库中。 我不知道从哪里开始。 如何显示用户拥有的任何图片作为他们的个人资料图片?

profile.php:

<form id="form2" action="upload.php" method="post" enctype="multipart/form-data">
<p id="p1">Change profile picture:</p> <br />
<input type="file" name="fileToUpload" id="fileToUpload"><br />
<br><input id="sub1" type="submit" value="Change profile picture" name="change"><br />
</form>

<!-- Trigger the Modal -->
<img id="myImg" src="default.jpg" width="200" height="150">

编辑!!!!

<?php
$username = $_SESSION['username'];

if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
$file_type = $_FILES['image']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

$extensions= array("jpeg","jpg","png");

if(in_array($file_ext,$extensions)=== false){
 $errors[]="extension not allowed, please choose a JPG, JPEG or PNG file.";
}

if($file_size > 2097152) {
 $errors[]='File size must be 2 MB';
}

 if(empty($errors)==true) {
 move_uploaded_file($file_tmp,"images/uploads/".$file_name);

$store=mysqli_query($conn,"UPDATE users SET userPic='$userPic' WHERE username='$username'");
mysqli_query($conn,$store);
 echo "Success";
}else{
 print_r($errors);
 echo"it failed";
}
}
?>

<?php
$getimg = mysqli_query($conn,"SELECT userPic FROM users WHERE username='" . 
$username . "'");
$rows=mysqli_fetch_array($getimg);
$img = $rows['userPic'];

?>



<img id="myImg" src="images/uploads/<?php echo $img?>"  alt="<?php echo $img ?>" width="200" height="150">

为实现这一目标:

1)使用define()配置文件中用户个人资料图片的目录: define('PROFILE_PATH', 'your dir path');
2)当用户登录时,使用登录用户ID /用户名的SQL查询获取图像名称,以从数据库获取个人资料图片名称
3)传递PROFILE_PATH并在标记中的后缀您的图像名称

经测试!

<?php



    $username = isset($_SESSION['username']) ? $_SESSION['username'] : "";

    $conn = mysqli_connect("localhost", "root", "", "test");

    if(!empty($username))
    {
        if(isset($_FILES['image']))
        {
          $errors= array();
          $file_name = $_FILES['image']['name'];
          $file_size = $_FILES['image']['size'];
          $file_tmp = $_FILES['image']['tmp_name'];
          $file_type = $_FILES['image']['type'];
          $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

          $extensions= array("jpeg","jpg","png");

          if(in_array($file_ext,$extensions)=== false){
             $errors[]="extension not allowed, please choose a JPEG or PNG file.";
          }

          if($file_size > 2097152) {
             $errors[]='File size must be 2 MB';
          }

          if(empty($errors)==true)
          {
             move_uploaded_file($file_tmp,"uploads/".$file_name);

            $store = "UPDATE users SET userPic='$file_name' WHERE username='$username'";

            if(mysqli_query($conn, $store))
            {
                echo "Success";
            }
            else
            {
                echo "Update failed!";
            }

          }else{
             print_r($errors);
             echo"it failed";
          }
        }
    ?>

    <?php
    $getimg = mysqli_query($conn,"SELECT userPic FROM users WHERE 
    username='$username'");
    $rows=mysqli_fetch_array($getimg);
    $img = $rows['userPic'];

    ?>



     <img id="myImg" src="images/uploads/<?php echo $img?>"  alt="<?php echo $img ?>" width="200" height="150">


     <?php  
    }
    else
    {
        echo "Invalid Username";
    }

如果您需要指导,可以给我留言

joesphi

好的,所以我的第一个问题是您是否使用某种数据库。 如果您确实在users表中创建了一个名为“ avatar”的字段,那么我们将在其中存储文件名。 其次,在您的localhost目录中创建一个名为“ uploads”的文件,在此处我们将存储图片的文件名。 其次,你有会议吗? 如果是这样,我已将会话定义为$ user,因此请更改它以适合您的会话。 然后只需添加此代码。 我将所有文件都放在同一个文件中,但是您可以根据需要将其设置为单独的文件。

<?php
    $servername = "localhost";
    $username = "";
    $password = "";
    $database = "";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);

$user = $_SESSION['username'];

   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size = $_FILES['image']['size'];
      $file_tmp = $_FILES['image']['tmp_name'];
      $file_type = $_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

      $extensions= array("jpeg","jpg","png");

      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }

      if($file_size > 2097152) {
         $errors[]='File size must be 2 MB';
      }

      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"uploads/".$file_name);

        $store=mysqli_query($conn,"UPDATE tbl SET avatar='$file_name' WHERE username='$user'");
        mysqli_query($conn,$store);
         echo "Success";
      }else{
         print_r($errors);
         echo"it failed";
      }
   }
?>

      <form action="" method="POST" enctype="multipart/form-data">
<p id="p1">Change profile picture:</p> <br />
         <input type="file" name="image" />
         <input type="submit"/>
      </form>

<?php

$getimg = mysqli_query($conn,"SELECT avatar FROM tbl WHERE username='$user'");
$rows=mysqli_fetch_array($getimg);
$img = $rows['avatar'];

?>



<img id="myImg" src="uploads/<?php echo $img?>"  alt="<?php echo $img ?>" width="200" height="150">

请提出任何问题,我很乐意为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM