jQuery追加blob以序列化数据

jQuery追加blob以序列化数据,jquery,Jquery,我有以下代码: var blob= base64ToBlob(cover, 'image/jpg'); var data = $(this).serializeArray(); 如何将blob值附加到serializeArray() 我尝试过使用data.push(blob,blob),当服务器接收的值为空时 有解决办法吗 提交是时,有头像和封面,但值为空 这是我的blob函数 function replace64(image) { return image.replace(/^da

我有以下代码:

var blob= base64ToBlob(cover, 'image/jpg');
var data = $(this).serializeArray();
如何将blob值附加到
serializeArray()

我尝试过使用
data.push(blob,blob)
,当服务器接收的值为空时

有解决办法吗


提交是时,有头像和封面,但值为空

这是我的blob函数

function replace64(image) {
    return image.replace(/^data:image\/(png|jpg);base64,/, "");
}

function base64ToBlob(base64, mime) {
    mime = mime || '';
    var sliceSize = 1024;
    var byteChars = window.atob(base64);
    var byteArrays = [];

    for (var offset = 0, len = byteChars.length; offset < len; offset += sliceSize) {
        var slice = byteChars.slice(offset, offset + sliceSize);

        var byteNumbers = new Array(slice.length);
        for (var i = 0; i < slice.length; i++) {
            byteNumbers[i] = slice.charCodeAt(i);
        }

        var byteArray = new Uint8Array(byteNumbers);

        byteArrays.push(byteArray);
    }

    return new Blob(byteArrays, {type: mime});
}

要在AJAX请求中发送二进制数据(可能来自您问题的上下文),您应该使用
FormData
@RoryMcCrossan I使用FormData更新我的问题。avalue仍然是空的。在这种情况下,我们需要看到更多的代码,特别是用于生成FormData的代码和接收FormData的服务器端代码。你检查过请求中实际发送的内容了吗?@Rorymcrossan我已经更新了完整的代码。
function replace64(image) {
    return image.replace(/^data:image\/(png|jpg);base64,/, "");
}

function base64ToBlob(base64, mime) {
    mime = mime || '';
    var sliceSize = 1024;
    var byteChars = window.atob(base64);
    var byteArrays = [];

    for (var offset = 0, len = byteChars.length; offset < len; offset += sliceSize) {
        var slice = byteChars.slice(offset, offset + sliceSize);

        var byteNumbers = new Array(slice.length);
        for (var i = 0; i < slice.length; i++) {
            byteNumbers[i] = slice.charCodeAt(i);
        }

        var byteArray = new Uint8Array(byteNumbers);

        byteArrays.push(byteArray);
    }

    return new Blob(byteArrays, {type: mime});
}
return $request()->all();