javascript – 从Koa中的POST请求下载文件

前端之家收集整理的这篇文章主要介绍了javascript – 从Koa中的POST请求下载文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用koa-router从Koa中的POST请求处理程序触发下载.基本上,我正在尝试做这样的事情:

app.js

const Koa = require('koa')
const router = require('./router')

const app = new Koa()

app.use(router.routes())
app.use(router.allowedMethods())

app.listen(3000)

router.js

const fs = require('fs')
const Router = require('koa-router')

const router = new Router()

router.post('/generate',function * () {
  const path = `${__dirname}/test.txt`
  this.body = fs.createReadStream(path)
  this.set('Content-disposition','attachment; filename= test.txt')
})

module.exports = router

client.js

const { fetch } = window;

const request = {
  method: 'POST',body: JSON.stringify({ fake: 'data' })
}

// Make the POST request
fetch('/generate',request)

但是,发送POST请求时,没有任何反应.我也没有在服务器控制台或浏览器控制台中收到任何错误.任何帮助,将不胜感激!

解决方法

您可以尝试使用 https://github.com/koajs/send
router.post('/generate',function * (next) {
    yield send(this,'file.txt');
});

在客户端,您需要在通过邮件请求接收文件内容时创建并触发下载.将此代码放在请求回调中

fetch('/generate',request)
  .then(res => { return res.text() })
  .then(content => {

    uriContent = "data:application/octet-stream," + encodeURIComponent(content);

    newWindow = window.open(uriContent,'somefile');

  });
原文链接:https://www.f2er.com/js/240811.html

猜你在找的JavaScript相关文章