Привязать изображение к полю fileupload при загрузке - PullRequest
0 голосов
/ 26 декабря 2018

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

Моя проблема при обновлении, так как не все поля обязательны для заполнения.Я получаю сообщение об ошибке Undefined index: file, которое является строкой $_FILES["file"]["name"].

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

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

PHP

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

HTML

<div class="form-group">
    <label>Upload Image:&nbsp;</label>
    <div class="input-group image-preview">
        <input type="text" class="form-control image-preview-filename" disabled="disabled"> <!-- don't give a name === doesn't send on POST/GET -->
        <span class="input-group-btn">
            <!-- image-preview-clear button -->
            <button type="button" class="btn btn-default image-preview-clear" style="display:none;">
                <span class="glyphicon glyphicon-remove"></span> Clear
            </button>
            <!-- image-preview-input -->
            <div class="btn btn-default image-preview-input">
                <span class="glyphicon glyphicon-folder-open"></span>
                <span class="image-preview-input-title">Browse</span>
                <input type="file" accept="image/png, image/jpeg, image/gif" name="input-file-preview" id="uploadimage" /> <!-- rename it -->
            </div>
        </span>
    </div>
</div>

1 Ответ

0 голосов
/ 26 декабря 2018

Вам нужно внимательно прочитать это .

В основном вы проверяете $_FILES["fileToUpload"]["name"], но в своем HTML-коде вы ссылаетесь на name="input-file-preview"

Так что ваш$_FILES индекс должен быть input-file-preview.

Например: $_FILES['input-file-preview'];

Кроме того, всегда полезно убедиться, что индекс массива существует перед его использованием.

Например

if(isset($_POST["submit"]) && array_key_exists($_FILES['fileToUpload']) ) {
   $target_dir = "uploads/";
   $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
   $uploadOk = 1;
   $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

   // Check if image file is a actual image or fake image

    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
...