Plupload установить параметр после инициализации - PullRequest
0 голосов
/ 05 февраля 2019

Итак, я хочу установить параметр имени файла после нажатия кнопки загрузки и получения имени файла из другой функции.


var uploader = new plupload.Uploader({
    runtimes : 'html5,flash,silverlight,html4',
    browse_button : 'pickfiles', // you can pass an id...
    container: document.getElementById('container'), // ... or DOM Element itself
    url : 'upload.php',
    chunk_size: '200kb',
    flash_swf_url : '../js/Moxie.swf',
    silverlight_xap_url : '../js/Moxie.xap',
  multipart_params : {
        "filename" : filename,

    },

    filters : {
        max_file_size : '1000mb',
        mime_types: [
            {title : "Image files", extensions : "jpg,gif,png"},
            {title : "Zip files", extensions : "zip"}
        ]
    },

    init: {
        PostInit: function() {
            document.getElementById('filelist').innerHTML = '';

            document.getElementById('uploadfiles').onclick = function() {

        // Filename function is not in here but it will return a filename
        var filename = get_filename_from_function();
        // Set filename ?
                uploader.start();
                return false;
            };
        },

        FilesAdded: function(up, files) {
            plupload.each(files, function(file) {
                document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>';
            });
        },

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

        Error: function(up, err) {
            document.getElementById('console').appendChild(document.createTextNode("\nError #" + err.code + ": " + err.message));
        }
    }
});

uploader.init();

get_filename_from_function () вернет имя файла, которое я затем хочу установить в качестве составного параметра, который будет публиковаться в файле PHP, однако я не могу понять это.Он всегда говорит, что имя файла не определено.

1 Ответ

0 голосов
/ 05 февраля 2019



init: {
        PostInit: function() {
            document.getElementById('filelist').innerHTML = '';

            document.getElementById('uploadfiles').onclick = function() {

        // Filename function is not in here but it will return a filename
        var filename = get_filename_from_function();
        // set the filename here
        uploader.settings.multipart_params.filename = filename ;
                uploader.start();
                return false;
            };
        }

Кажется, я нашел ответ на свой вопрос.Волшебная строка кода, которая должна быть помещена в функцию onclick:

uploader.settings.multipart_params.filename = filename ;

Также убедитесь, что multipart_params не объявлены в функции загрузчика.

multipart_params : {
        "filename" : filename,

    },
// Make sure to remove this from the original function

Надеюсь, это кому-нибудь поможет, потребовалось некоторое время, чтобы найти.

...