#如何用node做一个下载小片片的接口
以koa2为例
服务器端
async function downloadAvi (ctx, next) {
// 默认为json, 需要设置为二进制流哦
ctx.set('Content-type', 'application/octet-stream')
// 创建一个文件读取流
const reader = fs.createReadStream(path.resolve('service/番号.avi'))
// 发送
ctx.body = reader
}
客户端
以vue项目为例
downloadAvi () {
axios.get(
'api/downloadAVI',
{responseType: 'blob'} /* axios默认json,一定要设置成二进制格式哦 */
).then(res => {
const data = res.data
const url = window.URL.createObjectURL(new Blob([data]))
const link = document.createElement('a')
link.href = url
link.download = '1.mp4'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
})
}