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();