老莫的笔记本  
  
查看: 1295|回复: 1

koa-multer 图片上传模块

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-7-6 00:56:19 | 显示全部楼层 |阅读模式
参考文献:1. https://blog.csdn.net/ziwoods/article/details/72822730                     2.https://www.npmjs.com/package/koa-multer


我的个人总结: 这就是一个复制粘贴事情,需要注意:版本是 koa2

我总结
第一步:
  1. npm install koa-multer --save
复制代码
第二步:
滚去建个文件夹,在根目录下建个 upload /img/


第三步:
把下面这段代码复制粘贴过去:粘贴到node 某个路由模块即可。
  1. const multer = require('koa-multer');//加载koa-multer模块
  2. //文件上传
  3. //配置
  4. var storage = multer.diskStorage({
  5.   //文件保存路径
  6.   destination: function (req, file, cb) {
  7.     cb(null, 'upload/img/')
  8.   },
  9.   //修改文件名称
  10.   filename: function (req, file, cb) {
  11.     var fileFormat = (file.originalname).split(".");
  12.     cb(null,Date.now() + "." + fileFormat[fileFormat.length - 1]);
  13.   }
  14. })
  15. //加载配置
  16. var upload = multer({ storage: storage });
  17. //自定义路由
  18. router.post('/uploadimg', upload.single('file'), async (ctx, next) => {
  19.   ctx.body = {
  20.     filename: ctx.req.file.filename//返回文件名
  21.     ,code : 0   //这个值主要用作layui的一个判断
  22.   }
  23. })
复制代码
第四步:去前台页面 该提交的URL 为你设置的这个路由:注意 最好用post 提交 。

回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-7-9 23:36:45 | 显示全部楼层
在这里我陷入一个误区: 我使用了koa 模块  然后按照他的写法 ,可是 我以为值在 post 提交里 也就是 ctx.req.body!!! 但是 不是!  所有的值 是在:ctx.req.file
格式为:
  1. { fieldname: 'file',     
  2.   originalname: '2018-06-10_103521.jpg',   //本地上传时候的文件名
  3.   encoding: '7bit',
  4.   mimetype: 'image/jpeg',              //图片格式
  5.   destination: 'upload/img/',          //上传到服务器上 服务器的文件夹目录
  6.   filename: '1531149594150.jpg',       //上传到服务器后 该文件的名称
  7.   path: 'upload\\img\\1531149594150.jpg',    //上传到服务器后 所在的路径
  8.   size: 303427 }                       //文件大小
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表