在我的数据库中,我已经存储了文本文件的信息。在单击按钮时,我调用方法downloadLog()
downloadLog() {
Axios.post('http://localhost:3000/api/get_systemlog_file', this.systemlog)
.then(result => {
this.downloadLink = result.data.url
})
.catch(error => {
// API URL not found
})
}
在快递中,我搜索该行并收集数据并创建一个文件
app.post('/get_systemlog_file', (req,res) => {
let fileInfo = req.body
let expectedKeys = ['name', 'status', 'description']
for (let idx = 0; idx < expectedKeys.length; idx++) {
const key = expectedKeys[idx];
if (!fileInfo.hasOwnProperty(key)) {
return res.json(statusCodes.bad_request)
}
}
let foulderPath = './assets/logs/'
let filePath = foulderPath + fileInfo.status + '_' + fileInfo.name + '.txt'
fs.writeFile(filePath, fileInfo.description, (err) => {
if (err) {
return res.json(statusCodes.bad_request)
} else {
let webpackedPath = '~' + filePath.slice(1)
console.log(webpackedPath)
return res.json({ url: webpackedPath })
}
})
})
响应的网址将是
“〜/ assets / logs / error_Status_26_03_19.txt”
this.downloadLink
已包含我的文件的url,并在按钮中使用:href="downloadLink"
调用了此变量。
点击后,它会在同一站点上打开我的应用程序的新标签,这可能是因为this.downloadLink
最初设置为''
。
现在呢?我无权访问downloadLog()
我希望打开下载窗口(确定要下载此文件),或者只是打开一个新标签页并下载它。没关系,我只想要那个文件:)