koa上传图片

koa上传图片

上传图片使用的是koa-body中间件,所以需要下载安装
建议去npm中查看koa-body的使用方法,
附上链接:https://www.npmjs.com/package/koa-body
接下来上代码,先是html,

<div class="form-group" style="height: 100px;">
                            <label class="col-sm-2 control-label no-padding-right" for="site_title">上传头像:</label>

                            <div class="col-sm-10">
                                <input type="file"  accept="image/png,image/jpg" id="picUpload" name="file" multiple="multiple"/>
                            </div>
                        </div>

下面是后台代码:

router.post('/upload',async (ctx)=>{
    //图片上传
    const file = ctx.request.files.file
    console.log(ctx.request.files)
    // 创建可读流
    const reader = fs.createReadStream(file. path);
    let filePath = path.join(__dirname, '../../public/assets/avatars/') + `/${file.name}`;
    // 创建可写流
    const upStream = fs.createWriteStream(filePath);
    reader.pipe(upStream);
    return ctx.body = "上传成功!";
})

使用koa-body上传图片就完成了。
注意:
这里面有些坑,假入你的项目中同时使用了koa-body跟koa-bodyParser插件,那么有可能会产生冲突,出现请求发送失败的问题。我就有遇到这个坑,当我退出登陆时,第二次无法登陆进去,请求无法发送,在浏览器控制台出现Provisional headers are shown。
解决方法:koa-body可以代替koa-bodyParser,因此不使用koa-bodyParser即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。