koa2 怎么把public目录下的图片返回给前台

前端使用iview 上传图片到koa2的服务器中。

router.post('/upLoad', upload.single('file'), async(ctx, next) => {
    const filename = `http://localhost:3000/public/images/${ctx.req.file.filename}`
    ctx.body = {
        code: 'success',
        filename: filename
    }
})

这里想要返回一个url地址,可以直接点击这个url地址就可以看到图片内容。
应该怎么来做。

阅读 7.5k
2 个回答

问题解决了:

这是配置的静态文件夹地址
app.use(require('koa-static')(__dirname + '/public'))

在public文件夹下面有imgs文件夹,里面存放了上传的图片,
通过url访问的时候,http://localhost:3000/images/1510641058048.jpeg
不需要填写public这个路径了

可以使用koa-sendfile模块实现,github链接
官网的示例也很简单

var sendfile = require('koa-sendfile')

app.use(function* (next) {
  var stats = yield sendfile(this, '/Users/jong/.bash_profile')
  if (!this.status) this.throw(404)
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题