Plupload: запуск uploader.php даже без загруженного изображения - PullRequest
0 голосов
/ 11 мая 2018

Я использую plupload для загрузки изображений в форме. Когда я нажимаю «отправить», uploader.php выполняет свою работу, загружая изображения и обрабатывая другие данные формы, используя plupartloader multipart_params og.

Однако я хочу также отправить форму, когда изображение не выбрано. Когда я отправляю без выбранного изображения, uploader.php просто не запускается.

Есть ли способ запустить uploader.php во всех случаях, даже если файлы не выбраны?

Спасибо.

Это упрощенный код, над которым я работаю:

<textarea id="textarea_input"></textarea>
<label id="browse" href="javascript:;">
    <i class="fa fa-camera"></i> Add image
    <span id="filelist"></span>
</label>
<a id="start-upload" href="javascript:;"">Add</a>
<span id="console"></span>

<script type="text/javascript">
    var uploader = new plupload.Uploader({
        browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself
        url: 'uploader.php',
        multi_selection: false,
        resize: {
            width: 1500,
            height: 1500,
            quality: 30
        },
        filters: {
            mime_types : [
                { title : "Image files", extensions : "jpg,gif,png,jpeg" }
            ],
            max_file_size: "10mb",
            prevent_duplicates: true
        },
        multipart_params : {
            "textarea_input" : "value1" //predefine textarea_input here, uploader right before uploader.start()
        }
    });

    uploader.init();

    uploader.bind('FilesAdded', function(up, files) {
        while (up.files.length > 1) { //custom: limit to 1 file upload.
            up.removeFile(up.files[0]);
            document.getElementById('filelist').innerHTML = '';
        }
        var html = '';
        plupload.each(files, function(file) {
            html += '<br /><span id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></span>';
        });
        document.getElementById('filelist').innerHTML += html;
    });

    uploader.bind('UploadProgress', function(up, file) {
        document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
    });

    uploader.bind('Error', function(up, err) {
        document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
    });

    uploader.bind('UploadComplete', function(up, files) {
        window.location = "mobilelogbook.php?saved=2";
    });

    document.getElementById('start-upload').onclick = function() {
        uploader.settings.multipart_params["textarea_input"] = document.getElementById("textarea_input").value;
        uploader.start();
    };

</script>

И uploader.php:

<?php 

if (empty($_FILES) || $_FILES["file"]["error"]) {
    $fileName = '';
} else {
    $fileName = $_FILES["file"]["name"];
    move_uploaded_file($_FILES["file"]["tmp_name"], "images/logbook/$fileName");
}

if (isset($_POST['textarea_input'])) {
    $log = $_POST['textarea_input'];
} else {
    $log = '';
}

// SQL GOES HERE: ADDS THE TEXTAREA_INPUT AND FILENAME TO A TABLE.

die('{"OK": 1}');

?>
...