使用electronic的本机拖放文件上传器

时间:2019-02-25 16:15:22

标签: javascript node.js electron

我正在制作一个简单的文件上传器,以将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'
  })
})

有人对我做错了什么有什么想法?任何帮助将不胜感激,这里是repo of my project

编辑 完全重新安装有效,谢谢。

1 个答案:

答案 0 :(得分:1)

下载回购协议并进行测试后,我没有发现任何问题,因此似乎意外删除或更改了某些内容。有两种方法可以解决此问题。

选项1:

阅读“ Updating Electron”后运行npm update electron-prebuilt -save

选项2:

卸载Electron并重新安装:

  • 卸载:npm uninstall electron
  • 重新安装:npm install electron

我确实在您的 main.js 中注意到,您已经在第34行定义了常量ipcMain。在顶部调用常量是一个好习惯,您可以修改: / p>

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

收件人:

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