Встроенный Drag and Drop File Uploader, использующий электрон - PullRequest
0 голосов
/ 25 февраля 2019

Я работаю над созданием простого загрузчика файлов для загрузки файлов JPEG на сервер.Но я наткнулся на загадку.

Кажется, я не могу заставить Native File Drag and drop работать.Когда я перетаскиваю изображение или любой другой файл туда, где находится загрузчик файлов, он просто показывает курсор остановки.Вот так:

enter image description here

<input class="upload" type="file" id="Filedata" capture="" name="Filedata" multiple="" onchange="update()" accept="image/jpeg">
       <script type="text/javascript" charset="utf-8">
         document.getElementById('Filedata').ondragstart = (event) => {
         event.preventDefault()
         ipcRenderer.send('ondragstart', '/path/to/item')
       }
       </script>

Выше приведен мой код, на который я ссылаюсь.Он отлично работал на тесте Chrome, но не будет корректно работать в приложении Electron.Что я не смог сделать?Есть ли что-то, что я скучаю.Я помещаю вторую половину кода в мой main.js

const { ipcMain } = require('electron')
ipcMain.on('ondragstart', (event, filePath) => {
  event.sender.startDrag({
    file: filePath,
    icon: '/path/to/icon.jpg'
  })
})

У кого-нибудь есть какие-либо идеи относительно того, что я сделал неправильно?Любая помощь будет принята с благодарностью, вот репо моего проекта

РЕДАКТИРОВАТЬ Полная переустановка сработала Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019

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

Опция 1:

запустить npm update electron-prebuilt -save после прочтения « Обновление Electron »

Опция 2:

удалить Electron и повторно-установить с помощью:

  • удалить: npm uninstall electron
  • переустановить: npm install electron

Я заметил в вашей основной.js что вы определили константу ipcMain в строке 34. Рекомендуется вызывать константы сверху, и вы можете изменить:

const {app, BrowserWindow} = require('electron')

на:

const {app, BrowserWindow, ipcMain} = require('electron')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...