2012-10-25 32 views
5

如果我create a dynamic bitmap上通過javascript的客戶方,如何通過POST提交此或GET(然後從位圖解析出在服務器端的價值觀?的NodeJS,PHP等)如何通過POST提交Javascript生成的位圖圖像?

Making Images Byte-by-Byte in Javascript

var src = 'data:image/bmp;base64,' + myBase64EncodedData;

+0

爲什麼不使用AJAX張貼值服務器,並從'request.params [「形象」]'在你使用任何語言進行服務器端獲取? –

回答

1

您可以使用後這樣的..

HTML

<img src="whatever.jpg" id="myimage" /> 
<div id="button" data-role="button">Click on button</div> 

JS

$(function() { 
     $("#button").click(function() { 
       postImageData(); 
      }); 
    }); 

      function postImageData(){ 
var img = document.getElementById('myimage') 
var myBase64EncodedData = getBase64Image(img); 
       $.ajax({ 
        type: 'POST', 
        url: 'http://same_domain_url.com/', 
        data: { 
         'imagedata': myBase64EncodedData 
          }, 
        success: function(msg){ 
         console.log('posted' + msg); 
        } 
       }); 
      } 

PHP

$imagedata=$_POST['imagedata']; 

對於getBase64Image功能是指這太問題 Get image data in JavaScript?

+1

感謝您提及這個問題! – qodeninja

3

只要上傳底座64點的數據。用你喜歡的方式在服務器端解析它。

HTML:

<form id="uploadImage" method="POST"> 
    <input type="hidden" name="imageData64" id="imageData64"/> 
    <input type="submit" value="upload"/> 
<form> 

JS:

document.getElementById('uploadImage').onsubmit = function() { 
    document.getElementById('imageData64').value = myBase64EncodedData; 
}; 

或者你可以做一個Ajax請求相同。

你可能不希望使用GET雖然。部分原因是因爲它不合適,您不會從服務器中檢索任何內容。但更多的是因爲GET對URL長度有一些限制,所以你的圖像數據可能不適合。 POST沒有這樣的限制,因爲請求可以有一個body,與GET不同。

相關問題