在玩了几件事之后,我设法自己弄清楚了。
首先,这会将dataURI转换为Blob:
function dataURItoBlob(dataURI) { // convert base64/URLEnpred data component to raw binary data held in a string var byteString; if (dataURI.split(',')[0].indexOf('base64') >= 0) byteString = atob(dataURI.split(',')[1]); else byteString = unescape(dataURI.split(',')[1]); // separate out the mime component var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; // write the bytes of the string to a typed array var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], {type:mimeString});}从那里,将数据附加到表单,以便将其作为文件上传很容易:
var dataURL = canvas.toDataURL('image/jpeg', 0.5);var blob = dataURItoBlob(dataURL);var fd = new FormData(document.forms[0]);fd.append("canvasImage", blob);


