Node.js nodejs base64到blob的转换

Node.js nodejs base64到blob的转换,node.js,reactjs,blob,Node.js,Reactjs,Blob,Iam在react JS(react网络摄像头)中捕获网络摄像头屏幕截图。屏幕截图采用base64编码字符串的形式。我正在将base64字符串发送到nodejs,我想将base64字符串转换为.jpeg文件,以便可以保存在Azure Blob存储中。 是否有任何方法将base64字符串转换为.jpeg文件。您可以将base64字符串转换为缓冲区,然后尝试将其存储到azure var base64String = "....."; // your base64 string var bufferV

Iam在react JS(react网络摄像头)中捕获网络摄像头屏幕截图。屏幕截图采用base64编码字符串的形式。我正在将base64字符串发送到nodejs,我想将base64字符串转换为.jpeg文件,以便可以保存在Azure Blob存储中。
是否有任何方法将base64字符串转换为.jpeg文件。

您可以将base64字符串转换为缓冲区,然后尝试将其存储到azure

var base64String = "....."; // your base64 string
var bufferValue = Buffer.from(base64String,"base64");
试试这个:


  • 嗨,我使用这个功能

    public b64toBlob = (b64Data: string = '', sliceSize?: number) => {
                sliceSize = sliceSize || 512;
                if ( b64Data !== null) {
                    let block = b64Data.split(';');
                    let dataType = block[0].split(':')[1];
                    let realData = block[1].split(',')[1];
                    let filename = this.makeid() + '.' + dataType.split('/')[1];
                    let byteCharacters = atob(realData);
                    let byteArrays = [];
                    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
                        let slice = byteCharacters.slice(offset, offset + sliceSize);
    
                        let byteNumbers = new Array(slice.length);
                        for (let i = 0; i < slice.length; i++) {
                            byteNumbers[i] = slice.charCodeAt(i);
                        }
                        let byteArray = new Uint8Array(byteNumbers);
                        byteArrays.push(byteArray);
                    }
                    let blob = new Blob(byteArrays, {type: dataType});
                    return blob ;
                } else {
                    return '';
                }
            }
    
    public b64toBlob=(b64Data:string='',sliceSize?:number)=>{
    切片大小=切片大小| | 512;
    if(b64Data!==null){
    let block=b64Data.split(“;”);
    让数据类型=块[0]。拆分(“:”)[1];
    设realData=block[1]。拆分(',')[1];
    让filename=this.makeid()+'.+dataType.split('/')[1];
    let byteCharacters=atob(realData);
    let ByteArray=[];
    for(让offset=0;offset
    我用了这个,它很管用。 下面是服务器端代码(NodeJS)

    var contentType='image/jpeg';
    让base64String=req.body.img;
    让base64Image=base64String.split(';base64').pop();
    让date=date.now();
    fs.writeFile(`./uploads/${date}.jpeg`,base64Image,{encoding:'base64'},函数(err){
    log('File created');
    sourceFilePath=path.resolve(`./uploads/${date}.jpeg`);
    blobName=path.basename(sourceFilePath,path.extname(sourceFilePath));
    //log(sourceFilePath);
    blobService.createBlockBlobFromLocalFile(containerName、blobName、sourceFilePath,err=>{
    如果(错误){
    控制台日志(err);
    } 
    否则{
    //解析({message:`Upload of'${blobName}'complete`});
    控制台日志(“上传”)
    }
    });
    可能使用
    atob()
    ?两个最重要的答案都帮助了我:
    public b64toBlob = (b64Data: string = '', sliceSize?: number) => {
                sliceSize = sliceSize || 512;
                if ( b64Data !== null) {
                    let block = b64Data.split(';');
                    let dataType = block[0].split(':')[1];
                    let realData = block[1].split(',')[1];
                    let filename = this.makeid() + '.' + dataType.split('/')[1];
                    let byteCharacters = atob(realData);
                    let byteArrays = [];
                    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
                        let slice = byteCharacters.slice(offset, offset + sliceSize);
    
                        let byteNumbers = new Array(slice.length);
                        for (let i = 0; i < slice.length; i++) {
                            byteNumbers[i] = slice.charCodeAt(i);
                        }
                        let byteArray = new Uint8Array(byteNumbers);
                        byteArrays.push(byteArray);
                    }
                    let blob = new Blob(byteArrays, {type: dataType});
                    return blob ;
                } else {
                    return '';
                }
            }