我正在用jquerymobile和Spring MVC開發一個應用程序。我在控制器中以Inputstream的形式獲取圖像,下一步是將此圖像傳遞給Javascript,以便與JqueryMobile進行對話顯示。如何將Java InputStream傳遞給Javascript
如何將此java Inpustream圖像傳遞給javascript?
PS。控制器通過jquerymobile ajax調用,所以我有onSuccess
方法等待從控制器返回的數據。
我正在用jquerymobile和Spring MVC開發一個應用程序。我在控制器中以Inputstream的形式獲取圖像,下一步是將此圖像傳遞給Javascript,以便與JqueryMobile進行對話顯示。如何將Java InputStream傳遞給Javascript
如何將此java Inpustream圖像傳遞給javascript?
PS。控制器通過jquerymobile ajax調用,所以我有onSuccess
方法等待從控制器返回的數據。
爲什麼不使用jquery在div上加載java的圖像?
var url = 'myimage.com/image_java_url?'+dataToSend
$('#myDiv').load(url, function(response, status, xhr) {
if (status = "success"){
$('#myDiv').html(response);
}
});
這將是一個選項,如果我在URL中獲取圖像,但我有它在輸入流 – Hugo
我假設你正在創建一個REST端點來接收圖像。如果是這樣,你可以讓你的Spring端點將HttpServletResponse作爲參數,並將圖像流傳輸到servlet輸出流。 將輸入流包裝在BufferedInputStream中,讓它爲您處理緩衝。
要得到的HttpServletResponse的保持就把它添加作爲參數傳遞給你的方法,
@RequestMapping(value = "/something")
public void helloWorld(HttpServletResponse response) {
InputStream imageStream = .....;
OutputStream oSteam = response.getOutputStream();
InputStream stream = new BufferedInputStream(imageStream);
int b = -1;
while((b = stream.read())> -1){
oSteam.write(b);
}
嗨**托馬斯**,這只是我現在正在做的事情,但沒有成功的結果。謝謝 :) – Hugo
我還沒有與春太多的經驗,但我會用javax.ws.rs.core.Reponse
類的Java EE。這將允許您使用Response.ResponseBuilder
構建一個http響應,包裝您的InputStream
。
即
Response.ok(inputStream, MEDIA_TYPE.APPLICATION_OCTET_STREAM).build();
我看來,像你需要提取原始字節......那麼,來看看[這裏](http://stackoverflow.com/questions/4564119/javascript-convert -byte-to-image),它可能會有所幫助 – Less
爲什麼你需要使用ajax傳遞圖像?爲什麼不使用常規請求 - >用所有動態參數創建圖像網址。例如test.com/getImage/id13.png(getImage.png?id = 13) – zvez
**少**,謝謝我會看一看。 ** Zvezdochet **,我彈出這個檢索圖像在jquerydialog這是我使用AJAX調用 – Hugo