Tomasz Faszyński

Tomasz Faszyński Specjalista ds.
programowania

Temat: Jak wyświetlić obrazek nie mając urla +jQuery

Cześć,

Pobieram obrazek w następujący sposób:

public AjaxResponse viewerShowImage(
Locale locale,
HttpServletResponse response)
{
InputStream fileContent = null;

try {
List<DmsDTO> dmsRequests = download(162062888L);

DmsDTO result = dmsRequests.get(0);
fileContent = result.getContent().getContent().getInputStream();

long length = result.getLength();

response.reset();

response.setContentLength((int) length);
response.setContentType(result.getContent().getContent().getContentType());
response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");
response.setHeader("Expires", "20");

try {
FileCopyUtils.copy(fileContent, response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (IOException e) {
log.error("Blad wyswietlenia IO", e);
}

return AjaxResponse.success(response);
} catch (Exception ioe) {
log.error("Error FILE CONTENT", ioe);
log.error("Error downloading files", ioe);
throw new AexServiceException("Error downloading",
ioe);
}

}


Ogólnie obrazek jest pobrany i przekazany do jspx, ale jak tam go wyświetlić za pomocą jQuery?

function renderImage(imgUrl, canvasContainer) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var img = new Image();

canvasContainer.appendChild(canvas);

$.ajax({type: "POST", url: '${viewerShowImage}',
headers: { 'Content-Type': 'image/jpeg;charset=UTF-8'},
async: true, data : {
} ,
success:function (message) {
console.log("test: "+message);
$("canvas").load(message);
},
error: function() {
alert("error");
addMessage({ type: 'ERROR', messageText: 'Wystąpił błąd podczas wyświetlania obrazka.'});
}
});
}


Próbuję to jakoś połączyć. Jakbym miał url do obrazka to nie problem, a tak to nie wiem?

konto usunięte

Temat: Jak wyświetlić obrazek nie mając urla +jQuery

Pytanie, co jest w klasie AjaxResponse, bo z załączonego kodu wynika, że po wywołaniu URLa, który mapuje się na metodę
viewerShowImage
dostaniesz zwrotnie obiekt tej klasy i nie wiem, czy to jest JSON, czy cokolwiek innego.

Tak bez wiedzy o AjaxResponse, ale patrząc na resztę kodu, to jeśli metoda
viewerShowImage
działa , to raczej nie powinna pisać nic już po zamknięciu strumienia wyjściowego, więc może
return  AjaxResponse.success(response)
nic nie robi??. Jeśli rzeczywiście tak jest, to po wywołaniu URLa odpowiadającego metodzie otrzymasz dane obrazka, -> wtedy masz już URL obrazu (ten sam co dla wywołania metody).Ten post został edytowany przez Autora dnia 20.07.15 o godzinie 17:45



Wyślij zaproszenie do