Dropzone JS устанавливает пути к файлам изображений в БД после загрузки - PullRequest
0 голосов
/ 07 марта 2019

Я использую Dropzone для создания формы загрузки нескольких фотографий:

HTML:

<form id="eventPhotosForm" method="post" action="" enctype="multipart/form-data">
    <div class="dropzone" id="eventPhotosDropzone"><div class="dz-message" data-dz-message><span><i class="fas fa-image"></i><br>Add Event Photos</span></div></div>
</form>

JS:

$("#eventPhotosDropzone").dropzone({
    url: "process_upload_event_images.php",
    autoProcessQueue: true,
    maxFiles: 4,
    maxFilesize: 2,
    uploadMultiple: false,
    acceptedFiles: ".jpeg,.jpg,.png",
    init: function () {

        var eventPhotosDropzone = this;

        eventPhotosDropzone.on('success', function (file, response) {

                var form = document.getElementById('eventPhotosForm');

                var theFilesInput = document.createElement('input');
                theFilesInput.setAttribute('type', 'hidden');
                theFilesInput.setAttribute('name', 'theFiles[]');
                theFilesInput.setAttribute('value', file.upload.filename);

                form.appendChild(theFilesInput);

                var event_id = $('.page_inner').prop("id");

                var eventIDInput = document.createElement('input');
                eventIDInput.setAttribute('type', 'hidden');
                eventIDInput.setAttribute('name', 'event_id');
                eventIDInput.setAttribute('value', event_id);

                form.appendChild(eventIDInput);

                form.submit();

         });

    }
});

Dropzone загружает фотографии вмой сервер правильно, однако после загрузки фотографий я хочу установить имена новых загруженных фотографий в базе данных:

PHP:

$theFiles = $_POST['theFiles'];

if (!empty($theFiles)) {

    $event_id = $_POST['event_id'];

    foreach($theFiles as $theFile)
    {   
        $t = time();
        $fileNames[] = $t . "_" . $theFile;
    }

    $event_image_one = $fileNames[0];
    $event_image_two = $fileNames[1];
    $event_image_three = $fileNames[2];
    $event_image_four = $fileNames[3];

    sw::shared()->events->addPhotos(
        $event_id,
        $event_image_one,
        $event_image_two,
        $event_image_three,
        $event_image_four,
        $error
    );

Хотя я добавляю скрытый вход для«theFiles []», на стороне PHP это не проходит, поэтому пути к фотографиям событий никогда не обновляются, потому что код никогда не выполняется

Как я могу решить эту проблему, чтобы я мог загрузить несколько фотографий и задать путив базе данных?

Спасибо!

...