Skip site navigation (1) Skip section navigation (2)

Introduction, and help request

From: Sári Csaba <sari(dot)csaba(at)wishdoo(dot)com>
To: <pgsql-php(at)postgresql(dot)org>
Subject: Introduction, and help request
Date: 2011-10-14 08:51:40
Message-ID: 030c01cc8a4e$7dc8b710$795a2530$@csaba@wishdoo.com (view raw or flat)
Thread:
Lists: pgsql-php
Dear Listmembers, 

 

First, let me introduce myself: my name is Csaba Sári, and I’m 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. I’m 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 (it’s 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
copy it)

-          extra: there is a ‘cut profile image from the original image’ –
like in Facebook – function. 

 

After resizing complete, I’m escaping binary with pg_escape_bytea(), INSERT
to the table: 

[code]

 

pg_query($dbconn, "begin");

                                

                $query = "INSERT INTO users_picturesalbums_pictures 

(album_id, title, photo, photo_50, photo_128, photo_900, inocent,
photo_name, mimetype, enable_comments) 

VALUES

                                                               ('" .
$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);

                                                               

                pg_query($dbconn, "commit");

 

[/code]

 

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. 

 

I’ve 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 don’t 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,

 

Kind regards,

Csaba

pgsql-php by date

Next:From: ChrisDate: 2011-10-16 22:03:56
Subject: Re: Introduction, and help request
Previous:From: Mark KirkwoodDate: 2011-09-13 23:39:32
Subject: Re: pdo emulate prepares not working. still getting parse-bind-execute-deallocate in pg log

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group