图片上传脚本无法正常工作

Image upload script not working correctly

您好,我需要一些帮助来将图片上传到我的网站,我已经对这个脚本进行了几次更改,但我就是无法使其正常运行?

当我尝试上传任何图片时,脚本似乎失败了,没有更新任何记录,也没有上传任何图片?我对脚本做错了什么吗?

if(isset($_POST['uploadimage'])){
    $user = $_POST['user'];
    $target_dir = "userimg/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image

 $check = getimagesize($_FILES["fileToUpload"]);
  if($check !== false) {
        $uploadOk = 1;
  } else {
      $imgerror = 1;
        $uploadOk = 0;
  }

// Check if file already exists
if (file_exists($target_file)) {
    $imgerror = 2;
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"] > 500000) {
    $imgerror = 3;
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    $imgerror = 4;
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {

// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        $filenameimg = basename( $_FILES["fileToUpload"]);
        mysqli_query($conn, "UPDATE friends_list SET display_img = '$filenameimg' WHERE id = '$user'");
        $imgerror = 6;
    } else {
        $imgerror = 5;
    }
}
}

您似乎在这里遗漏了一些重要的部分,导致问题的第一部分是您的 basename 函数,您没有包括文件名。

$target_file = $target_dir . basename($_FILES["fileToUpload"]);

应该是

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

而要获取图片大小,也需要使用相同的过程:

$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);

也可以使用这个想法来更改您的 'Check File Size' 部分,我不会为您完成您的工作,但我会引导您朝着正确的方向前进。 您还需要记住添加tmp_name以移动上传的文件。

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {

纠正这些错误后,图像应该可以正确处理。除非你得到任何其他错误?