move_uploaded_file - файл изменился только после прямой загрузки этой страницы - PullRequest
0 голосов
/ 17 декабря 2018

Итак, я создаю чат и хочу, чтобы мои пользователи могли загружать изображение профиля.Я знаю, что AJAX работает, и файл загружается и перемещается в users / [их имя пользователя], но в других аккаунтах изображение их профиля не меняется на новое, пока они не загрузят реальное изображение профиля.Это немного запутанно, поэтому я упросту это:

  1. Пользователь успешно меняет изображение профиля (файл загружен)
  2. Тот же пользователь возвращается в комнату чата и изображение своего профиляизменилось
  3. Новый пользователь, который был в чате до загрузки нового изображения профиля, перезагружает страницу, чтобы найти, что изображение профиля другого пользователя остается прежним.

ТакжеЯ обнаружил, что если второй пользователь переходит к файлу, который содержит изображение профиля другого пользователя, он не изменяется, но при перезагрузке файла изображения это происходит.Это очень запутанно, и я понятия не имею, почему все это происходит.Там тоже нет никаких ошибок.Вот мой код: (я также пробовал копировать вместо move_uploaded_file)

if(!isset($_FILES["profileImage"])){
    echo '<script>window.setTimeout(function(){window.location = "messageRoom.php";}, 3000);</script>';
    die("No image recieved.<br>Automatically redirecting in 3 seconds...");
}


$target_file = "users/" . $username;




$file = $_FILES["profileImage"];

if(!exif_imagetype($file["tmp_name"])){
    echo '<script>window.setTimeout(function(){window.location = "messageRoom.php";}, 3000);</script>';
    die("File type not an image.<br>Automatically redirecting in 3 seconds...");
}

if(filesize($file["tmp_name"]) > 2000000){
    echo '<script>window.setTimeout(function(){window.location = "messageRoom.php";}, 3000);</script>';
    die("Image size over 2MB (".(round(filesize($file["tmp_name"])/100000)/10)." MB)<br>Automatically redirecting in 3 seconds...");
}


/*Deletes file if it exists*/
if(file_exists($target_file)){
    unlink($target_file);
}


if(move_uploaded_file($file["tmp_name"], $target_file)){
    echo "The file '" . basename($file["name"]) . "' has been uploaded to " . $target_file . "<br>Automatically redirecting in 3 seconds...";
} else {
    die("Error in file upload.<br>Automatically redirecting in 3 seconds...");
}

Кроме того, в коде похоже, что $ username и $ password не определены, но они определены ранее.Пожалуйста, помогите, я понятия не имею, что происходит.

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

Большое вам спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...