Как перетащить вложенный файл в браузер? - PullRequest
6 голосов
/ 20 апреля 2010

Похоже, что Gmail только запускает эту функцию и не требует установки какого-либо плагина и т. Д.

Работает в Firefox и Chrome, но не в IE.

Ответы [ 6 ]

17 голосов
/ 14 августа 2012

Использовать dropzonejs .

Это легкая библиотека, поддерживающая удаление файлов, просто добавляя класс dropzone для элементов формы. Он обрабатывает файлы с HTML5 и даже показывает предварительный просмотр изображений, вставленных в него. В несовместимых браузерах все сводится к простой форме загрузки файлов. Также: выглядит хорошо.

Посмотрите на это!

Отказ от ответственности: я написал эту библиотеку.

6 голосов

Давайте подытожим один пример, прежде чем все эти ссылки прервутся =)

Когда вы перетаскиваете с помощью HTML5 DnD API , файл из вашего рабочего стола / файлового браузера в браузер:

  • объект обратного вызова drop имеет свойство dataTransfer.files
  • , который является HTML5 File API FileList объект
  • , который содержит File API File объекты.

С этого момента используйте File API, чтобы выполнить загрузку, которая уже описана во многих других местах.

Полный пример:

<div id="file-drop" style="border:1px dashed black; height:300px; width:300px;">Drop files here!</div>
<script>
  var file_drop = document.getElementById('file-drop');
  file_drop.addEventListener(
    'dragover',
    function handleDragOver(evt) {
      evt.stopPropagation()
      evt.preventDefault()
      evt.dataTransfer.dropEffect = 'copy'
    },
    false
  )
  file_drop.addEventListener(
    'drop',
    function(evt) {
      evt.stopPropagation()
      evt.preventDefault()
      var files = evt.dataTransfer.files  // FileList object.
      var file = files[0]                 // File     object.
      alert(file.name)
    },
    false
  )
</script>

Fiddle .

Это предупредит базовое имя файла (путь не может быть получен из API файла).

Кстати, другой простой способ получить объект File - через атрибут .files IDL input type=file. Этот метод более удобен для небольших экранов, чем DnD, где вам нужно одновременно открыть два окна в хороших относительных положениях К сожалению, похоже, что в настоящее время перетаскивание в input type=file: перетаскивания файлов в стандартный ввод html-файлов не переносимо

Источник: http://www.html5rocks.com/en/tutorials/file/dndfiles/

4 голосов
/ 20 апреля 2010

Он использует API перетаскивания HTML5.

http://html5doctor.com/native-drag-and-drop/

2 голосов
/ 20 апреля 2010

API перетаскивания HTML5 доступен в самых современных браузерах, как и другие.

Google Gears («плагин») может добавить функцию drag'n'drop (я знаю, что Google Wave использовал шестерни по крайней мере в предварительном просмотре разработчика Google Wave) для старых браузеров (FF и IE) , Обратите внимание, что шестерни не будут поддерживаться вечно

2 голосов
/ 20 апреля 2010

Они используют одну из функций HTML5. IE не поддерживает HTML 5 или стандарты или ...

Вот блог , который достаточно хорошо объясняет перетаскивание.

0 голосов
/ 23 ноября 2010

Полагаю, вы ищете это http://www.plupload.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...