最后使用npm start 启动服务三种不同上傳方式返回数据及运行结果如下:
通常前端上传图片给与后端都是通过fordata或者表单进行上传后端服务接收到请求后将前端上传的图片保存在指定文件夹,最后再讲服务器图片地址传给前端前端通过url或者img 嘚src即可进行访问
unformidablee(unformidablee不用统一fordata键值,但是他也不能重命名图片需要通过fs模块来操作上传之后的图片来修改图片名字)
二、html(利用fordata添加图片通过ajax传递给后端)
这个问题已经在这篇文章中说明叻:
koa-body
主要是下面两个依赖:
具体的实现可以在 github 上查看 :
在 koa2 中使用 koa-body
,我使用的是全局引入而不是路由级别的引入,因为考虑到很多地方都有 post 請求或者是文件上传请求没必要只在路由级别引入。
省略了 koa 的一些基本代码
JSON 数据体的大小限制 |
是否解析 json 请求体
|
是否使用 json 严格模式true 会只處理数组和对象
|
文件上传前的一些设置操作 |
这些代码是在路由中体现的
需要注意的是,如果是获取上传后文件的信息则需要在 ctx.request.files
中获取。
如果是获取其他的表单字段则需要在 ctx.request.body
中获取,这是由 co-body
决定的(默认情况)
因为默认开启多个文件上传,因此 ctx.request.files
昰一个对象
而且是通过表单的 name=photo
属性作为对象的 key,值便是一个 File 对象,有用的字段如下:
最后使用npm start 启动服务三种不同上傳方式返回数据及运行结果如下: