Как я могу получить подобные Gmail загрузки файла для своего веб-приложения?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

18
задан ɢʀᴜɴᴛ 25 June 2017 в 20:31
поделиться

9 ответов

Выезд SWFUpload, который является по существу API JavaScript к абсолютно превосходящим возможностям обработки загрузки файла флэш-памяти. Лучшая вещь там до браузеров наконец нагоняет.

Из ссылки:

  • Загрузка несколько файлов сразу ctrl/shift-selecting в диалоговом окне
  • обратные вызовы JavaScript на всех событиях
  • Получают информацию файла, прежде чем загрузка запустится
  • элементы загрузки Стиля с XHTML и информацией о Дисплее css
  • , в то время как файлы загружают использование, страница No HTML
  • перезагружает необходимый
  • Работы над всеми платформами/браузерами, который имеет поддержку Flash.
  • Ухудшается корректно к нормальной форме загрузки HTML, если Flash или JavaScript недоступны
  • размер файла Управления, прежде чем загрузка запустится
  • Только дисплей выбранные типы файлов в диалоговом окне
  • загрузки Очереди, удалите/добавьте файлы перед стартовой загрузкой

Образцы

-----iframe-----

загрузки Для запуска, Вы хотите иметь iframe на своей странице. Это предназначено для коммуникации сервера. Вы скроете его позже, но на данный момент, сохранить его видимым. Дайте этому iframe атрибут имени, как "загрузчик" или что-то.

Теперь, в Вашей форме, ставит цель к имени iframe и действие к сценарию, который Вы имеете на сервере, который примет загрузку файла (как нормальная форма с загрузкой файла). Добавьте ссылку в той форме с текстом, "Добавьте Файл". Набор, которые связываются для выполнения функции JavaScript, которая добавит новый вход к форме. Это может быть сделано через DOM, но я рекомендовал бы библиотеку JavaScript как jquery.

, После того как новый вход файла добавляется к форме, установите событие размытости того входа к функции JavaScript, которая отправит форму и затем проверять его периодически на вывод. Чтение iframe может быть хитрым, но это возможно.

Имеют Ваш сценарий загрузки файла, производит "Сделанный". или имя файла или что-то, когда загрузка завершена.

Проверка это каждую приблизительно секунду до существует содержание. После того как Вы имеете содержание, уничтожаете Ваш таймер и заменяете вход файла названием файла (или "Файла, Загруженного") или что бы то ни было.

Скрывают Ваш iframe с CSS.

32
ответ дан 30 November 2019 в 06:22
поделиться

Для решения нефлэш-памяти можно использовать NeatUpload. Я использовал его на обширном проекте в прошлом году с требованием без флэш-памяти. Очень легко интегрироваться в существующие решения. Я думал, что это был бриз для работы с. Легче, в моем ограниченном опыте, чем работа с SWFUpload в ASP.NET. Вероятно, потому что NeatUpload создается только для ASP.NET.

1
ответ дан 30 November 2019 в 06:22
поделиться

От YUI! (Пользовательский интерфейс Yahoo), https://yuilibrary.com/yui/docs/uploader /

  1. Несколько регистрируют выбор в единственном "Открытом Файле" диалоговое окно.
  2. Расширение файла фильтрует для упрощения выбора пользователя.
  3. отслеживание Прогресса для загрузок файла.
  4. диапазон А метаданных файла: имя файла, размер, созданная дата, дата, измененная, и автор.
  5. Ряд событий диспетчеризировал на различных аспектах процесса загрузки файла: выбор файла, прогресс загрузки, завершение загрузки, и т.д.
  6. Включение дополнительных данных в файле загружают запрос POST.
  7. Более быстрая загрузка файла на широкополосных соединениях из-за измененного ОТПРАВЛЯЮТ размер буфера.
  8. ответ сервера Той-же-страницы после завершения загрузки файла.

Полностью Свободный

11
ответ дан 30 November 2019 в 06:22
поделиться

Я хотел бы немного больше разъяснения "подобной Gmail" загрузки файла.

Вы имеете в виду, как, если это находится для немного, это автоматически присоединяет его к проекту?

0
ответ дан 30 November 2019 в 06:22
поделиться

Вы говорите о загрузке без полностраничной обратной передачи? Смотрите на http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ , который создает скрытый iframe, копирует элемент управления вводом и использует iframe для выполнения сообщения для получения файла на сервере.

, Если Вы ищете поведение, где то, когда пользователь нажимает "attach file" и диалоговое окно просмотра файла автоматически, открывается, который может быть сделан с помощью JavaScript, но не работает в FireFox, который имеет предосторожность безопасности требования, чтобы пользователь вызвал кнопку "Browse" непосредственно (а не программно через сценарий).

Для "автоматической" загрузки, используйте JavaScript для присоединения к событию "изменения" для свойства "значения" 'входное' управление так, чтобы желание работало, когда файл был выбран.

1
ответ дан 30 November 2019 в 06:22
поделиться

Код Gmail является трудным найти Ваш путь вокруг, но если я должен был предположить, это - то, как он работает:

  • при нажатии на "attach another file" он вставляет регулярное входное управление файлом типа. На IE это может также программно инициировать событие щелчка на кнопке "обзора", таким образом, диалоговое окно файла сразу открывается (это не делает этого на Firefox, и у меня нет IE удобным, но я полагаю, что IE допускает это)
  • после выбора файла это обнаруживает событие изменения элемента управления вводом и запускает таймер.
  • , Когда таймер инициировал, он отсоединяет входной элемент от формы и добавляет его к другой форме в скрытом iframe, помещая простую ссылку в основную (видимую) форму. Скрытый iframe затем отправлен для загрузки файла. (Это может также клонировать входной элемент, но я не попробовал, работает ли это.)
0
ответ дан 30 November 2019 в 06:22
поделиться

Можно использовать iFrames для этого

0
ответ дан 30 November 2019 в 06:22
поделиться

Вместо этого вы можете использовать клон Flickr Uploader .

1
ответ дан 30 November 2019 в 06:22
поделиться

Вот клон загрузчика Gmail . Это точный клон программы загрузки Gmail с некоторыми дополнительными возможностями. Вы можете увидеть эскизы изображений после загрузки. Перетащите эскизы, чтобы изменить порядок и заменить любой эскиз. Это делается с помощью jQuery . Вы можете увидеть демонстрацию здесь . Исходный код можно бесплатно загрузить в виде одного zip-файла .

Я надеюсь, что вы легко удалите часть кода и получите желаемое. Вы можете оставлять комментарии в блоге ABCoder, если вам нужна дополнительная помощь.

4
ответ дан 30 November 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: