Images won't load if they are of high size
Posted
by
Fahim Parkar
on Stack Overflow
See other posts from Stack Overflow
or by Fahim Parkar
Published on 2012-10-21T15:43:14Z
Indexed on
2012/10/21
17:01 UTC
Read the original article
Hit count: 164
I have created web-application using JSF 2.0 and mysql.
I am storing images in DB using MEDIUMBLOB. When I try to load image, I am able to see those images. However if the image size is big (1 MB or more), I can see half or 3/4th image on the browser.
Any idea how to overcome this issue? Do I need to set any variable in JSF or MySQL?
I know I should have saved the images over disk instead of DB, however this was client requirement. Client wanted to backup data and provide it to someone else and client don't want to backup DB and images also.
Edit 1
Do I need to set any variables on mysql like query_cache
.
Edit 2
When I download same image and put below code it works perfectly.
<h:graphicImage value="images/myImage4.png" width="50%" />
Edit 3
code is as below.
<h:graphicImage value="DisplayImage?mainID=drawing" />
DisplayImage.java
String imgLen = rs1.getString(1);
int len = imgLen.length();
byte[] rb = new byte[len];
InputStream readImg = rs1.getBinaryStream(1);
InputStream inputStream = readImg;
int index = readImg.read(rb, 0, len);
response.reset();
response.setHeader("Content-Length", String.valueOf(len));
response.setHeader("Content-disposition", "inline;filename=/file.png");
response.setContentType("image/png");
response.getOutputStream().write(rb, 0, len);
response.getOutputStream().flush();
When I print len
I get value as len=1548432
© Stack Overflow or respective owner