2013-01-16 63 views
1

是否有可能通過畫布導出圖像(canvas.toDataURL("image/png"))並綁定到<input type="file" />上傳控件而不使用服務器端技術(所以,只有javascript)?base64圖像從畫布到文件上傳HTML控件

所以基本上,我的客戶端有一個<form>和其他字段,他希望有一個可編輯的圖像字段,將被添加到POST上的文件上傳HTML控件。由於現有的<form>是第三方,所以我無法以其他任何方式執行此操作,這意味着我無法修改服務器端邏輯,並且客戶端堅持保留該第三方<form>

所以,我有一個客戶的特定願望,我不知道這是否可能。 任何提示/指針/幫助將不勝感激。 謝謝!

編輯: 或許應該提到的是,解決方案必須工作,跨瀏覽器長達一個包括IE7

回答

2

也許你可以用它實現FormData。您需要使用BlobBuilder將畫布圖像轉換爲二進制。隨着FormData您可以:

var dataURL = canvas.toDataURL('image/jpeg', 0.5), 
    blob = dataURItoBlob(dataURL), 
    fd = new FormData(document.getElementById('form')); 
fd.append("canvasImage", blob); 

在這裏,你可以閱讀更多關於這種方法Convert Data URI to File then append to FormData