Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.07.2019, 17:27
Интересующийся
Отправить личное сообщение для maiskiykot Посмотреть профиль Найти все сообщения от maiskiykot
 
Регистрация: 11.09.2018
Сообщений: 28

Подскажите как сделать мультизагрузку файлов
Есть скрипт обработки одиночного файла с сокрытием поля input=file. Вопрос: как его доработать, чтобы кидал несколько файлов? В jquery не силен, поэтому застрял. Оригинал кода:

$('button[id^=\'button-upload\']').on('click', function() {
                    var node = this;

                    $('#form-upload').remove();

                    $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" multiple="true"/></form>');

                    $('#form-upload input[name=\'file\']').trigger('click');

                    $('#form-upload input[name=\'file\']').on('change', function() {
                            $.ajax({
                                    url: 'index.php?route=information/contact/upload',
                                    type: 'post',
                                    dataType: 'json',
                                    data: new FormData($(this).parent()[0]),
                                    cache: false,
                                    contentType: false,
                                    processData: false,
                                    beforeSend: function() {
                                            $(node).button('loading');
                                    },
                                    complete: function() {
                                            $(node).button('reset');
                                    },
                                    success: function(json) {
                                            $('.text-danger').remove();

                                            if (json['error']) {
                                                    $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>');
                                            }

                                            if (json['success']) {
                                                    alert(json['success']);
                                                    $(node).parent().find('.success').html(json['file']);
                                                    $(node).parent().find('input').attr('value', json['file']);
                                            }
                                    },
                                    error: function(xhr, ajaxOptions, thrownError) {
                                            alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                                    }
                            });
                    });
            });
Ответить с цитированием
  #2 (permalink)  
Старый 30.07.2019, 18:27
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Я так понимаю, что на стороне сервера PHP. Если так, то в 6-ой, 8-ой и 10-ой строчках замените name="file" на name="file[]". На стороне сервера обработайте $_FILES.
Ответить с цитированием
  #3 (permalink)  
Старый 30.07.2019, 19:22
Интересующийся
Отправить личное сообщение для maiskiykot Посмотреть профиль Найти все сообщения от maiskiykot
 
Регистрация: 11.09.2018
Сообщений: 28

Да с пыхом разберусь. Мне главное - jqery победить. Сам скрипт кидает ссылку на файл в хтмл. С вашей правкой он все файлы выложит?
Ответить с цитированием
  #4 (permalink)  
Старый 30.07.2019, 19:35
Интересующийся
Отправить личное сообщение для maiskiykot Посмотреть профиль Найти все сообщения от maiskiykot
 
Регистрация: 11.09.2018
Сообщений: 28

Сообщение от Русский Посмотреть сообщение
Это очень легко. Выкинь его на помойку и
Я бы с удовольствием, но здесь бюджет не тот для писания скрипта с нуля. А про 6-ю строчку - там ведь идет подмена скрытого поля и включено multiple. Точно нужно там поставть file[]?
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2019, 19:42
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от maiskiykot
Точно нужно там поставть file[]?
Да, только тогда на сервере можно обработать много файлов, если у вас на стороне сервера PHP! Если просто file, то в $_FILES будет только 1 файл, а если file[], то в $_FILES будут все файлы! Какой баг в PHP!

В 6-ой, 8-ой и 10-ой строчках добавьте!

Последний раз редактировалось Malleys, 30.07.2019 в 19:45.
Ответить с цитированием
  #6 (permalink)  
Старый 31.07.2019, 22:30
Интересующийся
Отправить личное сообщение для maiskiykot Посмотреть профиль Найти все сообщения от maiskiykot
 
Регистрация: 11.09.2018
Сообщений: 28

Это opencart к тому же. Неохота пилить пол-опенкарта для исправления его чудес
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как сделать звуковое оповищение при закрытии окна браузера lasgo3 Общие вопросы Javascript 1 16.04.2016 00:19
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Подскажите как сделать запускаемые скрипты Sadist_dead Сайт Javascript.ru 4 07.11.2011 21:59