I’m new to php and have spent a good deal of time trying to figure out how to (correctly) display a SQL IMAGE field. I’ve finally gotten an image to render but it’s only partially displaying the image (the rest of the image is grey – like it ran out of ink). The images are either 4098 bytes or 8194 bytes (which seems to me to indicate that something is suppressing file size or it’s really coincidental).
I’m accessing a third party database and they’ve not included an image’s file size in the database. The images that’ve been stored are all different sizes ranging from about 250px to about 700 px.
The smaller images render correctly about halfway then turn to grey. The larger images are correct for only about 10 px/lines and then turn to grey.
Here’s what a larger/8194 bytes image looks like: [img]http://dl.getdropbox.com/u/17533/displayCAD7KQM8.jpg[/img]
Here’s the code that I’m using:
The display line is as follows: <img src=’display.php?id=".$id."’>
Let me know if there’s any other information you need to consider this problem.
I will add this – I did post this on the Codewalkers forum and got some response. Also, the images are being accessed via an application and are rendered correctly in Word (which to my mind says the images aren’t corrupt?!). The oddly regular size of the image files would indicate to me that either a php.ini, SQL setting (or ?) is at work but because I’m rather inexperienced with both I’m really at a loss.
I appreciate any insight or help provided.
(FYI: This is a SQL database so it’s using the IMAGE field.)
I understand what you’re saying and that makes sense but if the images were too large wouldn’t there be an issue with their display in the application? How does that work?
At this point I’d LOVE to dispense with images being stored as blobs (or at the very least store them with accompaning size and type info) but it’s not my database…
Thanks for the input!
I found reference to this elsewhere and changed the settings as follows:
; Valid range 0 – 2147483647. Default = 4096.
;mssql.textsize = 2147483647
Unfortunately it didn’t seem to make a difference.
I think this is the right track though – it’s some sort of restriction in php or SQL. I thought maybe it’s a timeout issue but the images load fairly quickly – faster than the timeout threshold. Seems like if it was due to SQL setting that there would also be problems with the application display – I think…
Those settings start with ; which indicates a comment. This means the default setting applies, which would explain why you are only able to get the first 4096 bytes of the file.
Remove the ; from mssql.textlimit and mssql.textsize and restart apache. That should put the new settings into effect.
You must be logged in to reply to this topic.