canvasに表示された画像を取得し、その画像を投稿したいのですがうまくいきません。
postするとinvalid_form_data
とエラーメッセージが帰ってきます。
原因がわかりません。教えていただけると嬉しいです。
javascript
1function imgUpload() { 2 var canvasImage = $("#can").get(0); 3 4 var originalBinary = canvasImage.toDataURL("image/jpeg"); 5 var originalBlob = base64ToBlob(originalBinary); 6 var formData = new FormData(); 7 formData.append("file", originalBlob); 8 var data = { 9 token:"", 10 channel: '#general', 11 username: 'bot', 12 file:formData 13 }; 14 15 $.ajax({ 16 type: "POST", 17 url: POST_URL, 18 data: data, 19 dataType: "json", 20 processData: false, 21 error: function (XMLHttpRequest) { 22 console.log(XMLHttpRequest); 23 alert("アップロードに失敗しました"); 24 }, 25 success: function (res) { 26 if(res !== "OK") { 27 console.log(res); 28 alert("アップロードに失敗しました"); 29 } else { 30 alert("アップロードに成功しました"); 31 } 32 } 33 }); 34} 35 36// 引数のBase64の文字列をBlob形式にする 37function base64ToBlob(base64) { 38 var base64Data = base64.split(',')[1], // Data URLからBase64のデータ部分のみを取得 39 data = window.atob(base64Data), // base64形式の文字列をデコード 40 buff = new ArrayBuffer(data.length), 41 arr = new Uint8Array(buff), 42 blob, 43 i, 44 dataLen; 45 // blobの生成 46 for (i = 0, dataLen = data.length; i < dataLen; i++) { 47 arr[i] = data.charCodeAt(i); 48 } 49 blob = new Blob([arr], {type: 'image/jpeg'}); 50 return blob; 51} 52
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。