Squeak.ru - шаблоны программирования

Автоматическая загрузка файлов после выбора файла в Sencha Touch 2.3

У меня есть приложение Sencha Touch 2.3, которое я помогаю разрабатывать. Одна из функций, которую я хочу реализовать, — это загрузка файла, который затем я делаю с помощью PHP в бэкэнде. Однако я не могу найти работающий способ завершить загрузку (или даже показать диалоговое окно для выбора файла для загрузки!)

У меня есть панель навигации, которая выглядит следующим образом:

    ...

    navigationBar: {
        docked: 'top',
        id: 'mainAdminToolbar',
        items: [
            { ... 
            },
            {
                align: 'right',
                hidden: true,
                text: 'Import',
                itemId: 'ImportBtn',
            }
        ]

    ...

В моем основном файле контроллера у меня есть следующее:

    ImportBtn: "adminMain #ImportBtn",

    "adminMain #ImportBtn": {
        tap: "onImportTap"
    },

    ...

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

Я хочу сделать следующее:

  1. Попросите пользователя нажать кнопку
  2. Появится диалоговое окно, в котором пользователь может выбрать файл
  3. Автоматическая загрузка файла после выбора
  4. Делайте различные действия на стороне сервера с файлом

Как я могу добиться этого с помощью Sencha Touch 2.3?


Ответы:


1

Попробуйте использовать xtype: 'filefield' и его событие 'updatedata'

Чтобы выбрать файл, вы можете написать что-то вроде этого

{
    xtype: 'filefield',
    itemId: 'ImportBtn',
    listeners: {
        change: function (button, newValue, oldValue, eOpts) {
            alert(newValue);
        }
    }
}

И после выбора файла вы можете получить его с помощью этого (в 2.4 отлично работает)

var file = [your-filefield].getComponent().input.dom.files[0];

Подробнее о файловом поле http://docs.sencha.com/touch/2.3.0/#!/api/Ext.field.File

18.04.2015
Новые материалы

Очистить файлы Program .cache в Ubuntu 20.10
Очистите кеш за несколько простых шагов! GNU / Linux реализовал эффективное управление хранилищем для своих пользователей. Но заметили ли вы, что в вашей системе Linux заканчивается место,..

Использование Node.js для чтения действительно больших файлов (часть 1)
В этом сообщении в блоге есть интересный источник вдохновения. На прошлой неделе кто-то на одном из моих каналов в Slack опубликовал тестовое задание, которое он получил на должность..

Введение в градиентный спуск и обратное распространение
Введение в градиентный спуск и обратное распространение Как машинное обучение? Машинное обучение ( ML ) - это исследование компьютерных алгоритмов, которые автоматически улучшаются по..

Шаблон CQRS — C#
Этот архитектурный шаблон в основном говорит о том, что мы можем использовать одну модель для операций чтения, а другую — для операций записи. Звучит хорошо, но реализовать его может быть..

Освоение функций потерь в машинном обучении для регрессии: полное руководство по оптимизации…
Введение: Функция потерь является важным компонентом алгоритмов машинного обучения и статистических моделей. Его роль заключается в измерении несоответствия между прогнозируемым выходом модели и..

10 языков программирования, которые изменят мир в 2023 году
Мир программирования постоянно развивается, и востребованные языки постоянно меняются. Однако есть несколько языков, которые выдержали испытание временем и по-прежнему очень ценны для изучения в..

Чем заняться в наших библиотеках (апрель 2023 г.)
В апреле этого года мы празднуем обучение по-разному — от принятия позитивного и устойчивого мышления до понимания и сохранения местных популяций пчел, а также изучения новейших и новейших..