First, let me introduce myself: my name is Csaba Sári, and Im 34 years old
freelancer webdeveloper. I have a 3 years old Son, and I live in Hungary,
Budapest. My English is not so good, so I apologize for it.
I have a project currently, where I have to store images (png, jpg and gif)
in Postgre, and it is in PHP5 with Jquery. Im using EXIF, GD for
manipulating images and everything works well, only allowed type of images
could be uploaded, with max 500k size.
Unfortunately somebody else has designed the database, and it cannot be
modified anymore, and my problem is the following: the images has been
stored is bytea field, not like LO. If somebody uploading an image, I have
to resize the images for 3 different sizes (its a standard $post, then move
to a designated location, transform to this sizes):
- resize the original one for a 50x50px small thumb
- resize the original one for a 128x128px medium thumb
- and resize the original one for a 900x900px large thumb (of
course if the image is larger than the proper size, if it is smaller I just
- extra: there is a cut profile image from the original image
like in Facebook function.
After resizing complete, Im escaping binary with pg_escape_bytea(), INSERT
to the table:
$query = "INSERT INTO users_picturesalbums_pictures
(album_id, title, photo, photo_50, photo_128, photo_900, inocent,
photo_name, mimetype, enable_comments)
$albumid . "', '" . pg_escape_string($title) . "', E'" . $pic_origin . "',
E'" . $pic_50 . "', E'" . $pic_128 . "', E'" . $pic_900 . "','" . $inocent .
"','" . pg_escape_string($name) . "','" . $mimetype . "','" .
$enablecomments . "');";
$result = pg_query($dbconn, $query);
After this transaction is complete, I delete the temporary files, everything
seems fine BUT the image in the table looks like broken. When I want to
display it, sometimes the small one (50x50), or the medium one (128x128)
looks like, which is broken at the half of the image upload, or ¾ of the
image upload. I checked the temporary files before I delete it, they are ok,
so the problem is not with the image manipulation.
Ive try to tune the PostgreSQL conf (larger mem, workmem, buffers etc.),
php.ini, apache, but always the same result: sometimes upload is ok,
sometimes the upload broke. And I dont know what did I wrong, or what else
can I set.
If you have any suggestion, advice, experience please send me.
Thank you in advance,
|Storing large files in multiple schemas: BLOB or BYTEA||2|
|Connecting PHP-based Application to Postgres-9.0.3||39|
|Re: pdo emulate prepares not working. still getting parse-bind-execute-deallocate in pg log||0|
|pg_last_error() doesn't return connection errors||4|
|Pg Transactional Function||0|
|Re: Cannot connect to remote postgres using php||2|
|imprtant please read and deliver to who may concern (updated copy)||0|