2013-06-12 51 views
0

這個場景是從網絡攝像頭捕捉圖像並將圖像存儲到數據庫中,我在客戶端使用flex,我在服務器端使用Java,以下是我的flex代碼發送ByteArray從flex到java

var jpg_binary:ByteArray = snap.getPixels(snap.rect); 
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream"); 
var request:URLRequest = new URLRequest("../saveProfileImage.htm"); 
var urlVars : URLVariables = new URLVariables(); 
request.requestHeaders.push(header); 
request.method = URLRequestMethod.POST; 
urlVars.image = jpg_binary; 
urlVars.resourceId = FlexGlobals.topLevelApplication.parameters["id"]; 
urlVars.resourceName= FlexGlobals.topLevelApplication.parameters["type"]; 
request.data = urlVars; 
var loader:URLLoader = new URLLoader(); 
trace ("sending pic to htm"); 
loader.load(request); 
Alert.show("Uploaded Successfully"); 

現在我需要寫java部分的幫助,我的意思是如何從請求對象接收byteArray。

+0

我應該使用的**請求頭**如'(「內容類型」,「應用/八位字節流」);'如我發送多個參數。 –

回答

0

需要使用請求的getInputStream()

InputStream inputStream = request.getInputStream(); 
int readBytes = 0; 
int len = request.getContentLength(); 
byte[] buffer = new byte[len]; 
while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) { 
    // your code here. 
} 
+0

在哪裏指定參數名稱,因爲我發送多個參數,包含我的字節數組的參數是「image」 –