«неопределенный ключ массива «файл» » при попытке загрузки из javascript с помощью sweetalert2

#javascript #php #ajax #file-upload #sweetalert2

Вопрос:

Я пытаюсь создать всплывающее окно с помощью sweetalert2, в котором есть два текстовых поля и кнопка загрузки файла. Текстовые поля работают, но я, похоже, не могу правильно загрузить файл, сообщение об ошибке «Файл с неопределенным ключом массива «в C:…». Я новичок в JavaScript и PHP и, вероятно, просто упускаю что-то простое. JS:

 function Input(b, c, registration){
    var description = "";
    var approval = "";
    Swal.fire({
        html: `<textarea style = "font-size:12pt; height:200px; width:300px" type="text" id="desc" class="swal2-input"></textarea>
        <input style = "font-size:10pt" type="text" id="approved" class="swal2-input" placeholder = "Approved By:">
        <input type = 'file' id = 'file' name = 'file'>
        `,
        confirmButtonText: 'Accept',
        showCancelButton: true,
        focusConfirm: false,
        preConfirm: () => {
            const desc = Swal.getPopup().querySelector('#desc').value
            const approved = Swal.getPopup().querySelector('#approved').value
            if(!desc || !approved){
                Swal.showValidationMessage('Please fill in all required fields')
            }
            return { desc: desc, approved: approved}
        }
        }).then((result) => {   
            description = result.value.desc
            approval = result.value.approved    
        }).then((result) => {
            var formData = new FormData();
            formData.append('file', $('#file').val());
            console.log(formData.has('file'));
            Swal.fire({
                    icon: 'success',
                    title: 'Saved!',
                })
            $.ajax({
                url:"query.php",    
                type: "post",    
                data: {registration: registration, desc: description, app: approval, b:b, c:c},
                success(){
                    console.log("success");
                    $.ajax({
                        url:"upload.php",    
                        type: "post",   
                        enctype: "multipart/form-data",
                        processData: false,
                        contentType: false,
                        data: formData,
                        sucess(){
                        }
                    });
                }
            }); 
        });     
}
 

PHP:

 $location = "upload/".$_FILES['file']['name'];
if(move_uploaded_file($_FILES['file']['tmp_name'], $location)){
     return true;
else{
     return false;
}
 

FormData содержит содержимое в соответствии с .has («файл»), но он не распознает его в upload.php.