PHP Ajax Query - загрузка нескольких файлов в виде BLOB-объектов - PullRequest
0 голосов
/ 24 сентября 2019

Я выполняю небольшое упражнение, в котором пользователь может выбрать несколько файлов, и файлы загружаются через базу данных как BLOBS.Тем не менее, я не очень знаком с плагином FormData и доставляю мне немало хлопот.Похоже, что FormData не выбирает файлы, выбранные правильно.

Ошибка: Уведомление : неопределенный индекс: файлы в C: \ xampp \ htdocs \ Excercise \ file-report-attachments.php в строке 19

Я уже исследовал подобные темы, но не повезло.

<input class="fileInput" type="file" id="attachments" name="files[]" multiple>
var fileData = new FormData();

                $.each($("input[type='file']")[0].files, function(i, file) {
                    fileData.append('file', file);
                });



                $.ajax({
                    type: 'POST',
                    url: 'file-report-attachments.php',
                    data: fileData,
                    contentType:false,
                    cache: false,
                    processData: false,
                    success: function(response) {
                        console.log(response);
                    },error: function (error) {                       
                        console.log(error);
                    }
                });


<?php
    session_start(); 
    include("conn.php");

    $response = [];
    $response['dberror'] = false;
    $response['inputerror'] = false;
    $response['inserted'] = false;


    $upload_dir = 'uploads'.DIRECTORY_SEPARATOR; 
    $allowed_types = array('jpg', 'png', 'jpeg', 'gif', 'webm','mpg','mp2','mpeg','mp3','mp4','mpe','mpv','ogg','m4p','m4v','avi','wmv','mov','flv','ppm', 'pgm', 'pbm'); 

    // Define maxsize for files i.e 40MB 
    $maxsize = 40 * 1024 * 1024;  



    $file_names = $_FILES["files"]["name"];
    echo $file_names;

?>




Мне нужно получитьвыбранные файлы через ajax и formdata (может быть несколько) и обрабатывать их через php.

1 Ответ

0 голосов
/ 24 сентября 2019

Вы должны использовать цикл для извлечения данных из нескольких файлов, как показано ниже

foreach ($_FILES['files']['name'] as $name => $value) {
   if(is_uploaded_file($_FILES['files']['tmp_name'][$name])) {  
        $sourcePath = $_FILES['files']['tmp_name'][$name]; 
        $targetPath = "images/".$_FILES['files## Heading ##']['name'][$name];
        if(move_uploaded_file($sourcePath,$targetPath)) {
        }
   }
}

Спасибо

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