Загрузка нескольких файлов с помощью Google Closure Library

Как обрабатывать несколько загрузок файлов с помощью Google Closure?

  • Можно ли использовать YUI3 Uploader с Библиотека закрытия Google? Есть ли файл externs для YUI3? Можно ли поместить загрузчик YUI3 в iframe и получить доступ к переменной, возвращаемой обработчиком загрузки в родительском фрейме iframe? Возможно, с помощью iframe я мог бы создать изолированную среду для загрузчика YUI.

  • У кого-нибудь есть опыт работы с SWFUpload, Plupload или другую альтернативу с использованием Google Closure Library?

  • В качестве альтернативы я мог бы использовать Google Picker для загрузки файлов на Google Диск, а затем использовать Google Диск SDK для загрузки этих файлов на мой веб-хост. Недостатком является то, что я не могу изменить стиль Google Picker, чтобы он соответствовал стилю моего веб-сайта.


person Korneel    schedule 14.11.2012    source источник


Ответы (2)


На самом деле довольно просто написать компонент Google Closure Library, который использует SWFUpload для загрузки нескольких файлов. Я создал файл externs для расширенной компиляции с помощью Closure Compiler:

var SWFUpload = {
    "instances": function () {},
    "movieCount": {},
    "version": {},
    "QUEUE_ERROR": {
        "QUEUE_LIMIT_EXCEEDED": {},
        "FILE_EXCEEDS_SIZE_LIMIT": {},
        "ZERO_BYTE_FILE": {},
        "INVALID_FILETYPE": {}
    },
    "UPLOAD_ERROR": {
        "HTTP_ERROR": {},
        "MISSING_UPLOAD_URL": {},
        "IO_ERROR": {},
        "SECURITY_ERROR": {},
        "UPLOAD_LIMIT_EXCEEDED": {},
        "UPLOAD_FAILED": {},
        "SPECIFIED_FILE_ID_NOT_FOUND": {},
        "FILE_VALIDATION_FAILED": {},
        "FILE_CANCELLED": {},
        "UPLOAD_STOPPED": {}
    },
    "FILE_STATUS": {
        "QUEUED": {},
        "IN_PROGRESS": {},
        "ERROR": {},
        "COMPLETE": {},
        "CANCELLED": {}
    },
    "BUTTON_ACTION": {
        "SELECT_FILE": {},
        "SELECT_FILES": {},
        "START_UPLOAD": {},
        "JAVASCRIPT": {}
    },
    "CURSOR": {
        "ARROW": {},
        "HAND": {}
    },
    "WINDOW_MODE": {
        "WINDOW": {},
        "TRANSPARENT": {},
        "OPAQUE": {}
    },
    "completeURL": function () {},
    "Console": {
        "writeLine": function () {}
    }
},
FileProgress = {}
person Korneel    schedule 16.11.2012

Вы видели класс goog.net.iframeIo в библиотеке Google Closure? Вы можете отображать несколько элементов ввода файла в отдельных формах, а затем, используя этот компонент, публиковать каждую из этих форм через скрытые IFrame на веб-сервере.

Вот ссылка на документацию Google о том, как это реализовать:

http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/net/iframeio.js#48

person Technetium    schedule 15.11.2012
comment
С помощью этого решения пользователь не может выбрать несколько файлов одновременно. Я буду использовать этот подход для загрузки одного файла, но продолжаю искать решение для загрузки нескольких файлов. - person Korneel; 16.11.2012