PHP - файл изображения не загружается? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь загрузить изображение, оно говорит об успехе, но не перемещает файл в папку загрузки.

Код:

if(isset($_POST['uploadImage'])){
    $file = $_FILES['profileIage'];

    $fileName = $_FILES['file']['name'];
    $fileTmpName = $_FILES['file']['tmp_name'];
    $fileSize = $_FILES['file']['size'];
    $fileError = $_FILES['file']['error'];
    $fileType = $_FILES['file']['type'];

    $fileExt = explode('.', '$fileName');
    $fileActualExt = strtolower(end($fileExt));

    $allowed = array('png', 'jpg', 'jpeg', 'PNG', 'JPG', 'JPEG');

    if(!$fileError == 0){
        echo "There was an error uploading this image!";
    }elseif($fileSize > 2000){
        echo "File is too big!";
    }else{
        $fileNameNew = uniqid('', 'true').".".$fileActualExt;
        $fileDestination = "uploads/".$fileNameNew;
        move_uploaded_file($fileNameNew, $fileDestination);
        echo "Success";
    }
}

Код формы:

<form action="my-account.php" method="post" enctype="multipart/form-data">
Upload a profile image:
<input type="file" name="profileImage"><br>
<input type="submit" name="uploadImage" value="Upload">

Спасибо, Этан!

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Ваш код будет работать, если вы сделаете небольшие корректировки

if(isset($_POST['uploadImage'])){
$file = $_FILES['profileImage'];

$fileName = $_FILES['profileImage']['name'];
$fileTmpName = $_FILES['profileImage']['tmp_name'];
$fileSize = $_FILES['profileImage']['size'];
$fileError = $_FILES['profileImage']['error'];
$fileType = $_FILES['profileImage']['type'];

$fileExt = explode('.', '$fileName');
$fileActualExt = strtolower(end($fileExt));

$allowed = array('png', 'jpg', 'jpeg', 'PNG', 'JPG', 'JPEG');

if(!$fileError == 0){
    echo "There was an error uploading this image!";
} else if($fileSize > 2000){
    echo "File is too big!";
} else {
    $fileNameNew = uniqid('', 'true').".".$fileActualExt;
    $fileDestination = "uploads/".$fileNameNew;
    move_uploaded_file($fileNameNew, $fileDestination);
    echo "Success";
}

}

Измените ['file'] на ['profileImage']

0 голосов
/ 17 мая 2018

Попробуйте это:

if(isset($_POST['uploadImage'])){
    $myFile = $_FILES['profileImage'];

    $fileName = $myFile['name'];
    $fileTmpName = $myFile['tmp_name'];
    $fileSize = $myFile['size'];
    $fileError = $myFile['error'];
    $fileType = $myFile['type'];

    $fileExt = explode('.', '$fileName');
    $fileActualExt = strtolower(end($fileExt));

    $allowed = array('png', 'jpg', 'jpeg', 'PNG', 'JPG', 'JPEG');

    if(!$fileError == 0){
        echo "There was an error uploading this image!";
    }elseif($fileSize > 2000){
        echo "File is too big!";
    }else{
        $fileNameNew = uniqid('', 'true').".".$fileActualExt;
        $fileDestination = "uploads/".$fileNameNew;
        move_uploaded_file($fileTmpName, $fileDestination);
        echo "Success";
    }
}

Если вы собираетесь хранить данные файла в переменной, вы должны использовать их.

Подробнее здесь: http://php.net/manual/en/features.file-upload.php

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