CKfinder загрузка нескольких изображений без CKEditor
Я использую модальное окно ckfinder без CKEditor для загрузки нескольких файлов в раздел формы.
Я использовал код из раздела документации,
Модальное окно CKfinder открывается, как и ожидалось, выбрано несколько файлов, но мне не удалось получить все URL-адреса изображений. В ответ я получил только первое изображение.
window.CKFinder = {
_popupOptions: {
'popup-1-config': { // Config ID for first popup
chooseFiles: true,
onInit: function( finder ) {
finder.on( 'files:choose', function( evt ) {
var file = evt.data.files.first();
var output = document.getElementById( 'output' );
output.innerHTML = 'Selected in popup 1: ' + file.get( 'name' ) + '<br>URL: <img src=" ' + file.getUrl() + '">';
} );
}
},
}
};
var popupWindowOptions = [
'location=no',
'menubar=no',
'toolbar=no',
'dependent=yes',
'minimizable=no',
'modal=yes',
'alwaysRaised=yes',
'resizable=yes',
'scrollbars=yes',
'width=800',
'height=600'
].join( ',' );
document.getElementById( 'popup-1-button' ).onclick = function() {
// Note that config ID is passed in configId parameter
window.open( 'http://foxhills.localhost/admin/ckfinder/ckfinder.html?popup=1&configId=popup-1-config', 'CKFinderPopup1', popupWindowOptions );
};
В приведенном выше коде var file = evt.data.files.first (); это причина, по которой я получаю первое изображение. Как я могу изменить код, чтобы получить все URL-адреса в виде массива.
1 ответ
Решение
Для вашего мероприятия попробуйте протестировать с этим
finder.on( 'files:choose', function( evt ) {
var files = evt.data.files;
var chosenFiles = '';
files.forEach( function( file, i ) {
chosenFiles += ( i + 1 ) + '. ' + file.get( 'name' ) + '\n';
} );
alert( chosenFiles );
} );
Источник: https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-files_choose