我有<canvas>
,我得到的結果是base64
。如何發送文件沒有輸入[type =「file」]
canvas.toDataURL('image/png');
我想發送到服務器,但不發送base64
。我想發送文件PNG
。可能嗎?
謝謝JoeJoe87577 /工作例如:
var dataurl ='data:image/png;base64,i........I='
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
//var dataurl = canvas.toDataURL()
var blob = dataURLtoBlob(dataurl);
var fd = new FormData();
fd.append("key", "6528448c258cff474ca9701c5bab6927");
fd.append("file", blob);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http:/', true);
xhr.onload = function(){
//alert('upload complete');
};
xhr.send(fd);
看看[這個](http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript)。使用提供的信息,您將從base64字符串中獲取二進制數據。然後,您可以通過[ajax](http://api.jquery.com/jquery.ajax/)或[XMLHttpRequest](https://developer.mozilla.org/de/docs/Web/API/)發送數據XMLHttpRequest的)。 – JoeJoe87577
讓豌豆答案,我想接受他 – zloctb