vue3.X+node.js上传图片

1、vue.js使用bootstrap多文件上传组件

<input style="width:500px" @change="a" name="files"
 class="form-control form-control-sm" type="file"
 id="formFileMultiple" multiple/>

2、定义change方法,获取图片信息并上传后端

a(e){
     this.form.file=e.target.files[0]
            
     let file=this.form.file
     let formData=new FormData()
            
     formData.append("headfile",file)

     const headers = {
           "Content-Type": "multipart/form-data"
     };

            
     axios.post("/api/yutu/upload",formData,{headers}).then(res=>{
            alert(res.data.message)
     })

},

3、node.js安装中间件接收post form-data

var multipart = require('connect-multiparty')
const multipartyMiddleware = multipart()

router.post('/upload',multipartyMiddleware,YutuController.upload);

4、后端文件上传方法

var fs = require('fs');
var path = require('path');

function upload(req,res){

    try {
        if(!req.files.headfile) {
            res.send({
                status: false,
                message: 'No file uploaded'
            });
        } else {
            let avatar = req.files.headfile;

            var source = fs.createReadStream(avatar.path);
            var file = path.join( __dirname, '../uploads', avatar.originalFilename);
            var dest = fs.createWriteStream(file);
            source.pipe(dest);

            res.send({
                status: true,
                message: '图片上传成功!',
                data: {
                    name: avatar.name,
                    mimetype: avatar.mimetype,
                    size: avatar.size
                }
            });
        }
    } catch (err) {
        res.status(500).send(err);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值