PHP: ошибка, когда пользователь загружает изображение на сайт - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь позволить пользователю загрузить изображение, и оно останется в папке с именем «Изображения». Я не уверен, правильно ли я форматирую это, потому что учебник, которому я следую, не использует сервер.

Вот ошибки, которые я получаю в настоящее время:

Предупреждение: move_uploaded_file (/ student/globalit/2019/GamerMedia/pages/images/TrollFace.jpg): не удалось открыть поток: нет такого файла или каталога в /home/benrud/public_html/student/globalit/2019/GamerMedia/pages/account.php в строке 13

Предупреждение: move_uploaded_file (): невозможно переместить '/ tmp / phpVzhJCX' в '/student/globalit/2019/GamerMedia/pages/images/TrollFace.jpg' в / home / benrud / public_html / student /globalit / 2019 / GamerMedia / pages / account.php в строке 13

Вот ссылка на папку

Ниже приведен мой код. Любая помощь приветствуется. Спасибо.

<?php
    if(isset($_POST['submit'])){
        move_uploaded_file($_FILES['file']['tmp_name'],'/student/globalit/2019/GamerMedia/pages/images/'.$_FILES['file']['name']);
    }
?>

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Пожалуйста, проверьте ваш путь назначения ... Я считаю, что Ваш путь назначения является недействительным

0 голосов
/ 08 октября 2019

Вы можете попробовать следующее:

//images may be many, just load into a named array 
$filesArray = $_FILES;

//first properly target your directory (which should have write permission)
$ximage = "ppsize_photo";   //actual name or id as in html 
$target_dir = $_SERVER['DOCUMENT_ROOT'] ."/student/globalit/2019/GamerMedia/pages/images/"; 
$target_file = $target_dir . basename($filesArray[$ximage]["name"]);
$ext1 = pathinfo($target_file, PATHINFO_EXTENSION);
$imageFileType = $ext1;     //you may use this later to reject some types 

//ensure that your file names are unique (use any means possible)
$unique_id = substr( base_convert( time(), 10, 36 ) . md5( microtime() ), 0, 16 );
$unique_id1 = $unique_id . "." . $ext1; 
$target_file = $target_dir . $unique_id1;   //complete file name; maybe here is where your error was 

//you may also validate the extensions; it may not be an image 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    exit();
}else {
    //fine
}

//now move the image 
$uploadFlag = false;
if (move_uploaded_file($filesArray[$ximage]["tmp_name"], $target_file)) {
    //it went fine 
    $uploadFlag = true;             
} else {
    //echo "Sorry, there was an error uploading your file.";
    $uploadFlag = false;
}
...