[英]Append div content as an image to formData using Javascript
我有一個div,其內容是從服務器動態填充的,並繪制了一些條形圖,之后,我嘗試獲取相同的div並將其附加到表單數據中,以便將其另存為服務器上的圖像。 第一部分工作正常(繪制圖表)。 我在下面的代碼中嘗試過的第二部分僅上傳了一個沒有圖表內容的空PNG
文件。
$("#myChart").get(0).toBlob(function(blob) {
var image = blob;
var forms = document.querySelector('form#chartData');
var request = new XMLHttpRequest();
var formDatas = new FormData(forms);
formDatas.append('chartImage', blob, "chart.png");
request.open('post','/sendToServer');
request.send(formDatas);
request.onreadystatechange = function() {
if (request.readyState === 4) {
if (request.status === 200) {
/*File Uploaded*/
}
}
}
});
但是,當我使用saveAs(blob, "chart_1.png")
,圖像已成功下載,圖表繪制得很好。 我不知道我是否錯過了什么。 任何幫助表示贊賞。 我正在使用FileSaver.js
和canvas-toBlob.js
好吧,為了那些可能面臨相同問題的人,這是我最終要做的,並且工作正常:
html2canvas([document.getElementById('myChart')], {
onrendered: function (canvas) {
var imagedata = canvas.toDataURL('image/png');
var imgdata = imagedata.replace(/^data:image\/(png|jpg);base64,/, "");
console.log(imgdata);
//ajax call to save image inside folder
$.ajax({
url: '/sendToServer',
data: {
chartImage:imgdata
},
type: 'post',
success: function (response) {
console.log(response);
//$('#image_id img').attr('src', response);
}
});
}
});
然后用PHP腳本處理上傳
$imagedata = base64_decode($_POST['imgdata']);
$filename = md5(uniqid(rand(), true));
$file = $_SERVER['DOCUMENT_ROOT'] . '/images/'.$filename.'.png';
$imageurl = 'http://127.0.0.1'.$filename.'.png';
file_put_contents($file,$imagedata);
return $file;
注意:需要html2canvas.js
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.