Как я могу позволить пользователям загружать файлы копированием / вставкой? - PullRequest
9 голосов
/ 12 декабря 2011

Я пытаюсь создать веб-приложение на основе ExtJS и работаю над областью загрузки файлов приложения.

Я хочу, чтобы пользователи могли загружать файлы, копируя и вставляя их - не только копируя и вставляя содержимое файла, но и сам файл. Например, в Windows вы можете выбрать «Копировать» или «Вырезать» из меню «Редактировать», когда файл выбран, затем выберите «Вставить» позже и скопируйте или переместите файл - я бы хотел, чтобы пользователи могли загружать файлы в мое приложение на шаге Вставка, просто выбрав Вставить в их браузере.

Я уже пробовал перетаскивать API-интерфейс HTML5, но мы не хотим его использовать - мы хотим, чтобы пользователи могли копировать / вырезать и вставлять файлы для загрузки своих файлов (если они меньше 20 мегабайт). Если пользователь копирует путь к своему файлу и вставляет его непосредственно на страницу, сообщая нам, где найти файл, это также может сработать.

Может кто-нибудь предложить способ сделать это?

Ответы [ 2 ]

6 голосов
/ 13 декабря 2011

Дело в том, что вы не можете получить доступ к клиентской файловой системе с помощью JavaScript. Существует новый API файловой системы , но он просто позволяет вам создать виртуальную изолированную файловую систему. У меня была такая же проблема, я долго думал об этом и придумал следующие идеи.

  1. Flash

    Написание Flash-моста, который обращается к файловой системе и позволяет javascript взаимодействовать с ней через swliveconnect

    Проблема: Flash не имеет доступа к файловой системе.

  2. Java-апплет

    То же самое, что Flash и снова с LiveConnect

    По-моему, это может сработать, но я не пробовал, потому что моей целью было получить доступ к файловой системе на Chromebook. И chromeOS не поддерживает Java (по крайней мере, без взлома)

  3. ActiveX

    Я также нашел некоторые решения с этим. Я сдался в части апплета, таким образом, я не пробовал это также.

Как сказал Джаред Фарриш, при копировании файла ОС просто сохраняет путь к файлу в буфере обмена. Затем, если вы получили событие вставки в своем веб-приложении, просто извлеките строку из буфера обмена и перешлите ее на файловый мост.

0 голосов
/ 30 января 2013

Я видел, что DropBox.com позволяет это делать (в chrome - похоже, не работает в IE).Я специально не вырезал и не вставлял, а перетаскивал файлы на страницу выпадающего списка из локальной папки, и они загружали файлы.Таким образом, это не отвечает непосредственно на ваш вопрос, но, возможно, вы можете посмотреть, как это делается в их коде.

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