上传和显示个人资料图片

时间:2018-02-02 22:23:08

标签: php mysql mysqli phpmyadmin

我正在尝试将个人资料图片上传到我的社交帐户,但我遇到了一些问题。

我希望图像的名称是唯一的,所以我决定在每张图片上添加日期和时间,以防止与文件混淆。在我的数据库中,我有一个名字:date_time类型:datetime长度/值:YYYY-MM-DD HH:MM:SS默认值:current_time不为null或null(仍然不起作用)

我的代码是:

$info = date('YYYY-MM-DD HH:MM:SS');

if(!empty($username))
{
    if(isset($_FILES['image']))
    {

      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size = $_FILES['image']['size'];
      $width = 500;
      $height = 500;
      $file_tmp = $_FILES['image']['tmp_name'];
      $file_type = $_FILES['image']['type'];
      $tmp = explode('.',$_FILES['image']['name']); $file_ext=strtolower (end ($tmp));

      $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 ($width > 500 || $height > 500) {
// Cancel upload
      }

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

        $store = "UPDATE users SET userPic='$file_name' AND date_time='". $info ."' WHERE username='$username'";

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

      }else{
         print_r($errors);
         echo"Couldn't upload picture";
      }

    }
?>

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

?>

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

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

我收到了这些错误:

  

警告:move_uploaded_file(uploads / 2018201820182018-FebFeb-FriFri 2222:FebFeb:ndndenglish_tree.jpg):无法打开流:参数无效

     

警告:move_uploaded_file():无法移动

     

注意:未定义的索引:userPic

1 个答案:

答案 0 :(得分:0)

您的日期格式不正确,一个'Y'与完整的4位数年份相同。

请在此处查看日期格式:

http://php.net/manual/en/function.date.php

这应该是您要查找的用于date_time数据库字段的格式:

$database_info = date('Y-m-d H:i:s');

此外,文件名不能与冒号联系,因此对于文件名,请改用:

$filename_info = date('Y-m-d_H-i-s');

或只是将行更改为:

move_uploaded_file($file_tmp,"uploads/".date('Y-m-d_H-i-s').$file_name);