js base64转file类型提交表单下载

 function base64ToFile(dataurl){
        let filename = "filename.png";
        let arr = dataurl.split(',');
        // 获取文件类型
        let mime = "png";
        // 解码base64字符串
        let bstr = atob(arr[1]);
        let n = bstr.length;
        // 创建一个内容长度的数组,每个元素为对应字符串的Unicode码
        // 数组类型表示一个8位无符号整型数组,创建时内容被初始化为0。
        let u8arr = new Uint8Array(n);
        // UTF-16 编码单元匹配 Unicode 编码单元
        while (n--) {
            u8arr[n] = bstr.charCodeAt(n);
        }
        return new File([u8arr], filename, {type:mime});
    }

$.ajax({
                    type: "POST",
                    url: "${ctxPath}/f/app/view/upBasePic",
                    data: data,
                    cache: false,
                    contentType: false,    //不可缺
                    processData: false,    //不可缺
                    dataType:"json",
                    success: function (result) {
                        var res = result.resultDto;
                        console.log(res.code);
                        if(res&&res.code == 'true'){
                            uni.postMessage({
                                data: {
                                    action: res.data
                                }
                            });
                        }
                    }
                })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中的Blob、FileBase64都是处理文件或数据的常用对象。下面将介绍它们的使用场景以及相互之间的换。 Blob对象用于示不能被修改的类文件数据,并且可以在被发送到服务器之前进行处理。它可用于在网页上生成和下载文件,比如将网页上的图片存储为Blob对象,然后使用URL.createObjectURL()方法将其显示为图像。此外,Blob对象也可以用于通过XMLHttpRequest或Fetch API将数据发送到服务器。 File对象继承自Blob对象,它是用户在中选择的文件的示形式。File对象可以包含文件的名称、大小、类型以及最后修改日期等信息。在上传文件时,我们通常会使用File对象来获取文件的详细信息并进行验证。 Base64是一种将二进制数据编码为ASCII字符的方式,常用于在文本传输中示二进制数据。我们可以使用JavaScript的btoa()和atob()函数在Base64字符串和二进制数据之间进行相互换。 在相互换方面,可以将Blob对象换为Base64字符串,然后使用toDataURL()方法将其换为DataURL,或者使用FileReader对象的readAsDataURL()方法将Blob或File对象换为DataURL。而将Base64字符串换为Blob对象,则可以使用Blob构造函数并设置正确的MIME类型。 综上所述,Blob对象适用于处理类文件数据和发送到服务器,File对象适用于处理用户上传的文件,而Base64适用于在文本传输中示二进制数据。根据具体的应用场景和需求,我们可以进行这三种对象之间的相互换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值