File,Blob,base64,url,的之间相互转换示例

一、File类型转成二进制数据

//file文件转成二进制数据
const getBlobByFile = (file) => {
    return new Promise((resolve,reject) => {
        const reader = new FileReader();//生成FileReader实例
        reader.readAsArrayBuffer(file);//取出blob或者File文件的二进制原始数据
        reader.onload = function (res) {
            resolve(res.target.result)
        }
    })
}

二、File类型转base64

function fileToBase64 (file) {
        return new Promise((resolve,reject) => {
            const fileReader = new FileReader()
            fileReader.readAsDataURL(file)
            fileReader.onload = function (res) {
            	 resolve(res.target.result)
            }
        })
}

三、blob转File类型

const File = new File([blob],'文件名称')

四、根据url获取File类型

import axios from 'axios';
export const getFileByUrl = (url,fielName) => {
        return new Promise((resolve,reject) => {
            axios.get(url, { 
                responseType: "blob",
            }).then(response => {
                const blob = response.data
                const file = new File([blob],fielName)
                resolve(file)
            }).catch(() => {
                resolve(false)
            });
        })
}

五、根据图片url获取File文件

 const getImageFileFromUrl = (url,imageName) => {
            
            return new Promise((resolve,reject) => {
                axios.get(url, { 
                    responseType: "blob",
                    headers:{
                        Accept:'image/jpeg'
                    },
                }).then(response => {
                    const blob = response.data
                    const imgFile = new File([blob],imageName,{type:'image/jpeg'})
                    resolve(imgFile)
                }).catch(() => {
                    resolve(false)
                });
            })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值