Скрипт загрузки изображений работает неправильно

Здравствуйте, мне нужна помощь с загрузкой изображений на мой сайт, я несколько раз менял этот скрипт, но просто не могу заставить его работать правильно?

Когда я пытаюсь загрузить какие-либо изображения, сценарий кажется сбойным, и никакие записи не обновляются, а также никакие изображения не загружаются? Что-то не так с сценарием?

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;
    }
}
}

1 ответ

Решение

Похоже, что здесь вам не хватает пары важных частей, первая часть, которая может вызвать проблемы, это ваша basename функция, вы не включаете имя файла.

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

Должно быть

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

И чтобы получить размер изображения, вам также нужно использовать тот же процесс:

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

Используйте эту идею, чтобы изменить раздел "Проверка размера файла", я не буду выполнять вашу работу за вас, но отправлю вас в правильном направлении. Вы также должны помнить, чтобы добавить tmp_name переместить загруженный файл.

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

После того, как вы исправили эти ошибки, изображения должны обрабатываться правильно. Если вы не получаете какие-либо другие ошибки?

Другие вопросы по тегам