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

0

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?

1

Po stronie serwera obrazek zapisujesz do stringa w Base64, a po stronie jQuery przypisujesz tego stringa do

 <img src="data:image/jpg;base64,stringWBase64" />
0
QwertzOne napisał(a):

Po stronie serwera obrazek zapisujesz do stringa w Base64

Ok a jak to zrobić?

QwertzOne napisał(a):

a po stronie jQuery przypisujesz tego stringa do

 <img src="data:image/jpg;base64,stringWBase64" />

Ale ja chcę wyświetlić w tagu <canvas> to czy takie coś zadziała:

var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        var img = new Image();
        
        canvasContainer.appendChild(canvas);
        img.src = "ścieżka do pliku"

Czy w miejce "ścieżka do pliku" powinienem wstawić "data:image/jpg;base64,stringWBase64"

1 użytkowników online, w tym zalogowanych: 0, gości: 1