const { dialog } = require('electron')
const request = require('request')
const https = require('https')
const http = require('http')
const fs = require('fs')
/**
* 保存文件
* @param {*}
*/
function saveFileDailog(obj) {
let names = obj.imageName.join()
let imageName = obj.imageName
dialog
.showSaveDialog({
title: '保存文件',
defaultPath: imageName.length > 1 ? 'all' : names,
showsTagField: false,
filters: [{ name: 'All', extensions: ['*'] }]
})
.then(path => {
if (path.filePath) {
console.log(path, 'path')
let array = obj.imageSrc
for (let index = 0; index < array.length; index++) {
console.log(imageName[index], 'imageName[index]')
let curImg = imageName[index]
const element = array[index]
let url = element
let reg = new RegExp('^(https)://', 'i')
let match = reg.test(url)
let requestType = match ? https : http
let req = requestType.get(url, function (res) {
let fileData = ''
res.setEncoding('binary')
res.on('data', function (chunk) {
fileData += chunk
})
res.on('end', function () {
let index = url.lastIndexOf('.')
let suffix = url.substring(index + 1)
let time = new Date().getTime()
let curIndex = path.filePath.lastIndexOf('.')
let lastSuffix = path.filePath.substring(curIndex + 1)
let extNama = path.filePath
if (lastSuffix !== suffix) {
extNama = extNama + '.' + suffix
}
console.log(extNama, 'extNama')
let fileName =
obj.imageName.length > 1
? path.filePath + time + curImg
: extNama
fs.writeFile(fileName, fileData, 'binary', function (err) {
return err
? dialog.showErrorBox('提示', '文件下载失败!')
: console.log(
'[downloadPic]文件 ' + fileName + ' 下载成功.'
)
})
})
res.on('error', function (err) {
dialog.showErrorBox('提示', '下载失败!')
})
})
req.on('error', function (err) {
console.log('获取文件失败' + err)
dialog.showErrorBox('提示', '获取文件失败!')
})
}
}
})
}
module.exports = {
saveFileDailog
}
const ipc = require('electron').ipcRenderer
saveBtn() {
let url = 'http://searchbox.bj.bcebos.com/miniapp/demo-1.0.1.zip'
// ipc.send("save-dialog",{url:url});
ipc.send('save-dialog', {
imageSrc: [
'http://searchbox.bj.bcebos.com/miniapp/demo-1.0.1.zip',
'https://demo.dj63.com//2016/CLUB%E5%95%86%E4%B8%9A/club%E4%B8%AD%E6%96%87/20140101/%E9%94%99%E7%88%B1_%E5%BA%84%E5%BF%83%E5%A6%8D_DJ%E5%8D%81%E4%B8%89[2013%E6%B5%81%E8%A1%8C%E8%88%9E%E6%9B%B2].mp3',
'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fa0.att.hudong.com%2F52%2F62%2F31300542679117141195629117826.jpg&refer=http%3A%2F%2Fa0.att.hudong.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1617982876&t=9652f3a289a173fdb9b9cb084fabf15f.png',
'http://www.winrar.com.cn/download/winrar-x64-600scp.exe',
'https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2021.exe'
// 'http://ting.xiai123.com/mp3/kewen/wysyy4s/Module01_Unit2.mp3',
],
imageName:['文件1','文件2'] //与imageSrc一一对应
})
}
var express = require('express')
var https = require('https')
var url = require('url')
var fs = require('fs')
const Promise = require('promise')
const request = require('request')
var app = express()
app.get('/', function (req, res, next) {
var url =
'https://cdn2.jianshu.io/shakespeare/_next/static/images/note_page_right_sidebar_ad-813d011e1b2d3187d792db1edf5c3dfc.png'
function downloadMp3(url) {
var request = require('request')
var req = request(url, { timeout: 10000, pool: false })
// req.setMaxListeners(50);
// req.setHeader('user-agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36');
req.on('error', function (err) {
throw err
})
req.on('response', function (res) {
res.setEncoding('binary')
var fileData = ''
res.on('data', function (chunk) {
fileData += chunk
})
res.on('end', function () {
var name = url.slice(url.lastIndexOf('/'))
var fileName = './' + name
fs.writeFile(fileName, fileData, 'binary', function (err) {
if (err) {
console.log('[downloadPic]文件 ' + fileName + ' 下载失败.')
console.log(err)
} else {
console.log('文件' + fileName + '下载成功')
}
})
})
})
}
// downloadMp3('http://ting.xiai123.com/mp3/kewen/wysyy4s/Module01_Unit2.mp3');
// downloadMp3('https://cdn2.jianshu.io/shakespeare/_next/static/images/note_page_right_sidebar_ad-813d011e1b2d3187d792db1edf5c3dfc.png');
downloadMp3('http://searchbox.bj.bcebos.com/miniapp/demo-1.0.1.zip')
res.send(url)
})
app.listen(3006)