Tinymce富文本框图片上传

第一种方式

前端初始化富文本框时调用后端接口

let init = ref({
            //图片上传
            images_upload_handler:'api/upload_image',
})

后端node

router.post('/upload_image',upload.single('file'),async(req,res,next)=>{
    console.log('上传文件');
    console.log(req.file);
    const file = req.file
    const fileName = `${Date.now()}-${file.filename}.${file.originalname.slice(file.originalname.lastIndexOf('.') + 1)}`
    const uploadFile = fs.createWriteStream(`./public/images/uploads/${fileName}`,{
        highWaterMark:1024*1024*50
    })
    req.socket.setTimeout(120000)
    req.setTimeout(120000)
    const fileStream = fs.createReadStream(file.path)
    let uploadComplete = false  
    fileStream.on('error', err => {
        uploadFile.close()
    })  
    fileStream.pipe(uploadFile).on('finish', () => {
        uploadComplete = true
        uploadFile.close()  
    })
    res.json({ 
        location: `http://localhost:8886/images/uploads/${fileName}` 
    })
})

第二种 自定义方式

前端

let init = ref({
            //自定义图片上传
            images_upload_handler:(blobInfo,success,failure)=>{
                console.log('自定义图片上传');
                // console.log(blobInfo);
                // console.log(failure);
                // console.log(success);
                const blob = blobInfo.blob()

                //组装图片信息
                const param = new FormData()
                param.append('file',blob,blobInfo.fileName)

                // 调用上传图片接口
                axios.post('api/upload_image',param,{
                'Content-type' : 'multipart/form-data'
            }).then((res)=>{
                success(res.data.location)
            })
})

后端node同上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值