Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471

Сортировать файл до загрузки на сервер

25.01.2019, 09:07. Показов 950. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, реально ли такое сделать?
Есть загрузчик. В кратце, работает так:
выбираем файлы:
HTML5
1
<input style="opacity: 0;" type="file"  name="files" id="filesA" multiple>
Затем обрабатываем массив файлов в инпуте:
JavaScript
1
$('#filesA').on('change', prepareUpload);
Функция:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
 function prepareUpload(e)
    {
        LoadFiles = e.target.files;
        # формируем массив
        $(LoadFiles).each(function(index,value){
            LoadFilesTmp = LoadFilesTmp.concat(this);
        });
        # Обновляем пиктограммы предпросмотра файлов
        $(function (){UpdateItems();});
 
    }
Вторая:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function  UpdateItems()
    {
 for (var i=0; i < LoadFilesTmp.length; i++) {
            var thisFile = LoadFilesTmp[i];
try{
                imgSrc = window.URL.createObjectURL(thisFile);
            } catch(e) {}
returnList += '<div style="position:relative;text-align:center;cursor:pointer;" class="display_inline PrePhoto" data-block="PrePhoto" data-id="'+i+'"><div data-phDel="yes" class="delete photoDelButton prewDel" id="'+i+'"></div><img src="'+imgSrc+'" class="imgList" title="'+LoadFilesTmp[i].name+'"><div style="width:100px;left:50%;margin-left:-50px;background:black;color:white;font-size:14px;position:absolute;bottom:20px;text-align:center;">'+sizeFile+'</div></div>';
$('#fileList').html(returnList);
}
 
}
А потом по клику, формируем объект для отправки файлов на сервер
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$("#body").on('click', '[data-startUpload="1"]', function(event) {
                var dataFiles  = new FormData();
 
    
                        if('undefined' != typeof LoadFilesTmp && LoadFilesTmp.length)
                        {
                            $.each(LoadFilesTmp, function(photos, value)
                            {
 
                                dataFiles.append('file'+photos, value);
                            });
                        }
});
Так вот, я подключил библиотеку jquery-ui для перетаскивания объектов:
JavaScript
1
2
3
4
5
$('#fileList').sortable({
    stop: function() {
        Тут то что надо выполнить
    }
});
Т.е иконки фото, я могу перемещать между собой. Реально ли при их перемещении, менять порядок их загрузки на сервер?
Я так полагаю, что надо не менять положение элементов в массиве LoadFilesTmp, а менять порядок внутри элемента input type="file", а потом вызвать обновление для массива, потому как если добавить потом новый файл, к существующим, то массив возьмет данные из инпута и сформируется заново, убрав сортировку сделанную ранее.
За ранее спасибо...

Добавлено через 10 часов 37 минут
Сегодня, на свежую голову, все сделал быстро.
Может кому пригодится, потом...
в функции UpdateItems при формировании строки returnList в первом диве добавляю data атрибуты data-block="PrePhoto" - для обхода в будущем элементов по этому атрибуту и data-key="'+i+'" где i - это ключ каждого файла в массиве LoadFilesTmp
Затем на странице загрузки делаю сортировку файлов:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Элемент внутри которого происходит сортировка объектов
$('#fileList').sortable({
    stop: function() {
        # Создаю новый массив
        var sort = [];
        # Обхожу все элементы с указанным атрибутом
        $('[data-block="PrePhoto"]').each(function(index,value){
                # Формирую новый массив, заполняя его данными из основного массива, но вношу согласно порядку элементов на странице, по указанному в атрибуте ключу
            sort.push(LoadFilesTmp[$(this).data('key')]);
        });
       # Перезаписываю основной массив
       LoadFilesTmp = sort;
        # Обновляю данные в загрузчике
        $(function (){UpdateItems();});
    }
});
Вот, собственно и все!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2019, 09:07
Ответы с готовыми решениями:

Не возможно скачать файл после его загрузки на сервер
Добрый день. Начну с того, что я использую для upload'а ajax-запросы. Файл загружается,проблем с ним нет, ссылка отображается, то есть, всё...

После загрузки exe на сервер, файл перестаёт работать
Решил сделать ф-цию обновления для моей программы, а что бы каждый раз не заходить в браузер, сделал так, чтобы при нажатии на определённую...

Нужно экспортировать таблицу в текстовый файл-дамп для последующей загрузки на сервер
Есть БД access 2002. Нужно экспортировать таблицу в текстовый файл-дамп для последующей загрузки на сервер. В БД создаю модуль с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2019, 09:07
Помогаю со студенческими работами здесь

Создать файл с текстом. Взять слова длиной n, копировать их в другой файл по сортировать по алфавиту
Добрый день помогите пожалуйста написать программу которая будет копировать слова n длины в другой файл и сортировать их там по алфавиту....

сортировать четные числа в один файл, нечетные числа в другой файл с++
сортировать четные числа в один файл, нечетные числа в другой файл с++

Загрузки файла на сервер
Не работает загрузка файла на сервер, вот код: &lt;div style=&quot;width:800px; min-height:600px; margin:0 auto; border:1px solid #CCC;...

Сервер загрузки файлов
Хочу сделать, что-то типа сервера закачки файлов. Сперва хотел сделать на основе асинхронных запросов в одном потоке. Но потом подумал, что...

Переписать из файла ф1 текст в файл ф2 и сортировать по алфавиту
переписать из файла ф1 текст в файл ф2 и сортировать по алфавиту#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru