Drag and drop не работает ubuntu
В этом руководстве вы узнаете, как добавить response-dropzone в свой проект React, и изучите некоторые из предоставляемых им базовых функций.
Требования
Для выполнения этого урока вам понадобится локальная установка Node.js. Следуйте инструкциям для вашего дистрибутива: mac OS, Ubuntu, Debian, CentOS.
Руководство было проверено на версиях Node v15.3.0, npm v7.4.0, react v17.0.1 и react-dropzone v11.2.4.
1: Создание тестового проекта
Начнем с создания простого проекта. С помощью create-react-app сгенерируйте приложение React.
npx create-react-app react-dropzone-example
Перейдите в новый каталог:
npm install [email protected]
Теперь у вас есть новый проект React с компонентом react-dropzone.
2: Добавление компонента Dropzone
У response-dropzone есть стандартные настройки, которые позволяют добавлять его в приложения при помощи минимальной конфигурации.
Как минимум, вам понадобится свойство onDrop, которое будет обрабатывать перетаскиваемые в область файлы и базовый текст с призывом к действию, чтобы помочь пользователю разобраться. В файл src/DropzoneComponent.js добавьте:
Этот код обеспечивает обработку перетаскивания файлов в вашем приложении.
Примечание: Стоит отметить, что, хотя зона response-dropzone и предназначена для перетаскивания файлов, по умолчанию она принимает события клика, которые запускают диалоговое окно для выбора файлов.
Добавьте этот компонент в свое приложение React (файл src/App.js):
Запустите приложение и понаблюдайте за ним в веб-браузере. Вы должны увидеть элемент div с текстом:
Попробуйте перетащить разные файлы в компонент Dropzone. В настоящее время для отображения файлов код использует console.log. Информация из загруженных файлов включает имя, дату последнего изменения, размер и тип (name, lastModified, size, and type).
На данный момент у нас есть рабочий компонент React Dropzone с конфигурацией по умолчанию. Дополнительные параметры конфигурации можно найти в документации response-dropzone.
3: Стилизация компонента Dropzone
По умолчанию зона сброса response-dropzone не оформлена. В документации представлены стили для общего оформления этой зоны, где используется комбинация гибкого блока и пунктирных границ, которая указывает пользователям на область для перетаскивания файлов.
Также response-dropzone поддерживает свойства для ситуаций, когда с компонентом активно взаимодействуют (isDragActive), компонент принимает (isDragAccept) или отклоняет файл (isDragReject).
Пересмотрите свой DropzoneComponent и добавьте isDragActive, isDragAccept и isDragReject, которые будут применяться к типам файлов JPEG и PNG:
В результате у вас будет стандартная зона для перетаскивания файлов, отмеченная пунктирной линией по периметру.
Зона сброса с поддержкой свойств isDragActive, isDragAccept и isDragReject предоставит пользователю обратную связь о том, действителен ли его файл.
4: Добавление превью изображений
Предварительный просмотр был удален в версии 7.0.0, однако документация предоставляет альтернативный способ добавить предпросмотр – с помощью комбинации Object.assign() и URL.createObjectURL().
Вернитесь к своему компоненту src/DropzoneComponent.js и добавьте предварительный просмотр:
Теперь всякий раз, когда пользователь перетаскивает файл (или файлы) в зону сброса, на экране будет отображаться предварительный просмотр.
Заключение
В этом руководстве вы познакомились с функцией response-dropzone и узнали о том, как ее можно использовать в приложении React для расширения функций перетаскивания файлов.
Я следовал инструкциям, но все еще не могу перетащить файлы в гостевую ОС Virtualbox. Я перешел в «Настройки», «Общие», «Дополнительно», щелкнул «Двунаправленный» в общем буфере обмена и перетаскиванием, и все еще не могу перетащить или скопировать что-либо в гостевую ОС (Win7). Я что-то пропустил?
Функция поддержки drag'n'drop требует установки гостевых дополнений VirtualBox. Убедитесь, что вы не устанавливаете пакет Guest Additions, доступный в официальном репозитории Ubuntu («virtualbox-guest-дополнения»), а вместо этого устанавливаете гостевые дополнения из меню VirtualBox («Устройства»> «Установить гостевые дополнения»). Я только что попробовал, и у меня есть Linux на гостевой и хост-машине, и я перетащил папку гостя в папку хостов, и папка исчезла из гостевой системы и не появилась в папке хоста, так где же папка? ??Drag and Drop работает только для гостей Linux (гость: ОС на виртуальной машине)
Добавлена экспериментальная поддержка Drag'n'drop с хоста для гостей Linux. Планируется поддержка большего количества гостей и гостя к хосту.
Как сказано в guitar42697, вы должны установить общую папку.
Я знаю, что это старый вопрос, и он задает обратное (хост - это Linux, guest - это Windows), но я надеюсь, что это поможет другим, таким как я, настроить drag'n'drop, где host - это Windows, а guest - это Linux.
В окне VirtualBox с виртуальной машиной выберите « Устройства»> «Вставить образ гостевого дополнения» .
Он появится в виде смонтированного компакт-диска в операционной системе Linux. Следуйте инструкциям, чтобы установить его, затем перезагрузите виртуальную машину.
Затем включите Drag'n'Drop с помощью Устройств> Drag'n'Drop> Двунаправленный
(вы также можете выбрать другой вариант, если вы не хотите двунаправленного перетаскивания)
Вы также можете включить общие буфера обмена с помощью устройств> Общий буфер обмена> Двунаправленный.
Даже после установки образа гостевых дополнений в виртуальной коробке опция перетаскивания не будет работать вообще. Вам нужно установить стандартные пакеты Ubuntu для этого, используя три команды ниже, а затем включить опцию перетаскивания из меню-устройства-перетаскивания .
Я считаю, что вы должны настроить общую папку, чтобы вы могли перетащить вещи из Ubuntu в папку, и она появится в Windows 7, и наоборот. насколько я знаю, вы не можете напрямую перетаскивать элементы в virtualbox
У меня гость Ubuntu 12.04, работающий под Windows 7, и мне довольно часто случается, что общая папка «внезапно» становится «пустой» (и / или недоступной) при просмотре с гостя (/ media / sf_vmShare). Я считаю, что это происходит, когда Ubuntu обновляет себя, иногда. Решение состоит в том, чтобы переустановить гостевые дополнения в соответствии с уже опубликованной инструкцией и перезагрузить гостя.
VirtualBox – это специальная программа, имитирующая независимый компьютер внутри вашего устройства, что позволяет испытывать новые виды ПО и операционных систем без риска заразить основную машину вирусами. Обычно VirtualBox используют разработчики и тестировщики приложений, программисты, но иногда и простые обыватели, например, чтобы апробировать новую операционную систему без ущерба для старой. Для удобства работы VirtualBox имеет буфер обмена, благодаря которому можно переносить часть информации либо внутри виртуального компьютера, либо между реальной ОС и тестируемой. Перенос осуществляется привычными клавишами Ctrl+C, Ctrl+V или перетаскиванием. Но иногда ничего не выходит: буфер обмена не работает.
Решение проблем с буфером обмена в VirtualBox.
Настройки тестируемой системы
Если в VirtualBox не работает буфер обмена, в первую очередь, нужно проверить, настроили вы его или нет.
- Откройте тестируемую систему в VirtualBox.
- Нажмите Ctrl + S, чтобы открылось окошко с опциями.
- Выберите «Свойства» – «Общие» – «Дополнительно».
- Затем обратите внимание на строку «Общий буфер обмена» и зафиксируйте функцию «Двунаправленный» – вы найдёте её в списке.
- То же самое выбираем для строчки Drag&Drop.
- После повторного входа в тестируемое пространство вы увидите, что неполадка исчезла, нужные элементы свободно переносятся между ОС.
Сброс настроек и переустановка
Если же вы добрались до настроек и обнаружили, что все значения уже заданы, а буфер всё же не работает, попробуйте следующее:
- Сбросьте параметры общего буфера обмена.
- Установите заголовочный файл ядра, имеющий следующий вид: apt-get install make gcc linux-headers-$(uname -r).
- Заново переустановите расширение VirtualBox Guest Additions – оно уже предусмотрено в пакете установки, если у вас официальная версия продукта.
- Выполните перезагрузку и вернитесь к параметрам буфера обмена, о которых говорилось ранее.
Как активировать Guest Additions
Если у вас лицензионная версия VirtualBox, то запустить расширение довольно просто:
- Перейдите во вкладку «Устройства» в работающей виртуальной ОС, найдите в конце списка «Подключить образ диска дополнений гостевой ОС».
- Откройте раздел «Компьютер», там вы обнаружите Guest Additions в списке подключенных устройств (как будто вы вставили диск в дисковод).
- Кликните по условному «диску», и заработает программа установки.
- Периодически будут вылетать окошки с предложением инсталлировать драйвер – нажмите «ОК».
- Перезагрузите компьютер, когда об этом попросит программа установки.
Если вы загружали дополнение отдельно, переместите его в корневую папку VirtualBox,а далее:
- Остановите экспериментальную ОС и зайдите в менеджер.
- Откройте «Настройки» – «Носители».
- В окошке выбираем «Контроллер IDE», и сбоку в настройках «Вторичный мастер IDE».
- Нажимаем значок с изображением диска и жмём «Выбрать образ оптического диска».
- Откроется окошко с предложением найти нужный файл, ищем его в корневой папке, куда ранее поместили, он имеет расширение «.iso», нажимаем «открыть».
- Теперь можно запустить тестируемую ОС и щёлкнуть по значку «Компьютер», где обнаружится Guest Additions.
- Далее начинаем процесс инсталляции, описанный выше.
Данное расширение позволяет не только пользоваться буфером обмена, но и выходить в интернет непосредственно через экспериментальную операционную систему, работать с драйвером видео и многое другое.
После этого в виртуальной машине появится привод с диском, на котором находятся нужные для установленной операционной системе дополнения, которые следует установить. Во время установки достаточно просто нажимать "Далее" ("Next"), после чего потребуется перезагрузка.
Подробнее про установку гостевых дополнений можно прочитать в отдельной статье.
Включаем общий буфер обмена
В том же пункте меню "Устройства" необходимо открыть подменю "Общий буфер обмена" в котором необходимо выбрать один из четырех вариантов:
Для передачи файлов используйте функцию Drag & Drop (см. ниже).
- Выключен - в данном случае возможность что-либо скопировать или вставить из реального компьютера в виртуальный, или наоборот, будет отсутствовать;
- Из основной ОС в гостевую ОС - обмен "буфером обмена" будет возможен только в одну сторону - с реального компьютера, в виртуальный;
- Из гостевой ОС в основную ОС - будет возможность копирования с виртуального компьютера на хост, с хоста в виртуальную машину не будет;
- Двухнаправленный - буфер обмена будет работать в обе стороны;
Изменения функции обмена буфером обмена между основным компьютером и виртуальным будут применены сразу после изменения настроек.
Включаем Drag & Drop
Drag'n'Drop называют действие, которое можно перевести на русский язык как "перетаскивание". Конкретно в VirtualBox оно позволяет перетащить файл с виртуальной машины в реальную, и наоборот. Для этого нужно включить в настройках виртуальной машины поддержку этой функции. Делается это следующим образом:
- В верхнем меню VirtualBox находим пункт "Устройства". В нем будет находится подпункт "Функция Drag & Drop".
- Выбираем подходящий параметр:
- Выключен - функция Drag & Drop выключена;
- Из основной ОС в гостевую ОС - возможность перетаскивать файлы и папки только в виртуальную машину, но не из неё;
- Из гостевой ОС в основную ОС - возможность перетаскивать файлы и папки только из виртуальной машины, но не в неё;
- Двухнаправленный - возможность перетаскивать файлы и папки как с виртуальной машины, так и в неё;
- Настройки применяются сразу, а значит после включения функции Drag & Drop можно сразу ей воспользоваться.
ВНИМАНИЕ! В релизах для Windоws до версии 4.3.28 включительно (и нескольких предыдущих релизах 4.3.2x) имеется серьезная подтвержденная проблема с функционированием режима сети NAT. Данная проблема полностью отсутствует в билде 4.3.20, а также в новом стартовом релизе набора билдов 5.x.x. Оба билда крайне рекомендуется для использования, если для Вас важно нормальное функционирование режима сети NAT в VirtualBox.
Немецкая компания InnoTek объявила о выпуске продукта VirtualBox Open Source Edition (OSE), тем самым практически опубликовав значительную часть исходных текстов своего флагманского продукта по лицензии GPL.
Oracle xVM VirtualBox — это система полной виртуализации, поддерживающая динамическую трансляцию (выполнение значительной части инструкций гостевой ОС на реальном оборудовании). В качестве хост-систем поддерживаются Linux, Windows и macOS, а в роли "гостя" могут выступать Windows, Linux, BSD и прочие системы. Как сообщают разработчики, отличительной чертой VirtualBox являются модульность и продуманные интерфейсы (например, можно запустить виртуальную машину из GUI, изменить её параметры из командной строки и затем подключиться удалённо), специальные утилиты (Guest Additions) для гостевых систем Linux и Windows, повышающие степень интеграции гостевой и хост-систем, а также дескрипторы виртуальных машин в формате XML. Графический интерфейс VirtualBox использует Qt, но благодаря SDK и упомянутой выше модульности разработать альтернативную оболочку будет достаточно просто.
Начиная с 4-ой версии Oracle xVM VirtualBox существует в единственной редакции, распространяемой под лицензией GNU GPL с открытыми исходными кодами, соответственно, нет ограничений в использовании.
Некоторые дополнительные функции выделены в отдельный пакет Oracle VM VirtualBox Extension Pack, среди которых:
* RDP-сервер — позволяет подключаться к виртуальной системе удалённо с помощью любого RDP-совместимого клиента;
* поддержка устройств USB 2.0/3.0;
* возможность PXE-загрузки при использовании сетевой карты от Intel;
* шифрование виртуальных жёстких дисков.
Oracle VM VirtualBox Extension Pack распространяется только в бинарном виде под собственной лицензией (PUEL), бесплатен только для личного некоммерческого использования.
Читайте также: