electron中下载文件的方法如下:
首先通过remote.getCurrentWindow()方法获取到当前窗口对象win,然后通过win.webContents.downloadURL()方法下载文件。
let filePath = '';//需要下载文件的路径
const win = remote.getCurrentWindow();
win.webContents.downloadURL(filePath);
const win = remote.getCurrentWindow();
win.webContents.downloadURL(filePath);
如果要将文件另存为,可以增加一个右键菜单,点击右键将文件另存为
例子如下:
<a href="https://www/baidu.com/1.zip" oncontextmenu="contextmenu(event,this)">下载</a>
<script>
function contextmenu(event,obj){
let filePath = obj.href;//获取到下载文件的路径
//创建右键菜单
const Menu = remote.Menu;
const MenuItem = remote.MenuItem;
const menu = new Menu();
let menuItem1 = new MenuItem({label: '另存为', click: ()=>{
win.webContents.downloadURL(filePath)
}});
menu.append(menuItem1);
e.preventDefault();//阻止默认行为
x = e.x;//鼠标右键点击的横坐标
y = e.y;//鼠标右键点击的纵坐标
menu.popup({x:x,y:y});
return false;
}
</script>
<script>
function contextmenu(event,obj){
let filePath = obj.href;//获取到下载文件的路径
//创建右键菜单
const Menu = remote.Menu;
const MenuItem = remote.MenuItem;
const menu = new Menu();
let menuItem1 = new MenuItem({label: '另存为', click: ()=>{
win.webContents.downloadURL(filePath)
}});
menu.append(menuItem1);
e.preventDefault();//阻止默认行为
x = e.x;//鼠标右键点击的横坐标
y = e.y;//鼠标右键点击的纵坐标
menu.popup({x:x,y:y});
return false;
}
</script>