blob size after pg_lo_open

blob size after pg_lo_open

am 11.08.2004 22:57:12 von Thom Dyson

I have to store some files in a database and let users download the files.
I want to pull the file size so I can use the HTTP Content-length
header. I've tried using PHP's fstat to return the size, but I think the
object returned by pg_lo_open is not suitable.

Any ideas? BTW, I figured this was a pretty common need, but I could not
find a complete widget to deal with it. The best I could come up with was
complete apps, mostly image galleries, and a few code snippets.


Thom Dyson
Director of Information Services
Sybex, Inc.



---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

Re: blob size after pg_lo_open

am 12.08.2004 03:13:21 von ljb

TDyson@sybex.com wrote:
> I have to store some files in a database and let users download the files.
> I want to pull the file size so I can use the HTTP Content-length
> header. I've tried using PHP's fstat to return the size, but I think the
> object returned by pg_lo_open is not suitable.

No, you can't use fstat() on a large object handle. If you really need the
large object size, you have to open the large object with pg_lo_open(),
seek to the end with pg_lo_seek($loid, 0, PGSQL_SEEK_END), and then get the
position with pg_lo_tell($loid). This will return the number of bytes in
the large object. But if you find yourself doing this a lot, you might be
better off storing the file size (as calculated when uploaded) in another
field in the database record.

> Any ideas? BTW, I figured this was a pretty common need, but I could not
> find a complete widget to deal with it. The best I could come up with was
> complete apps, mostly image galleries, and a few code snippets.

I've hardly ever bothered with Content-length. There is probably some
advantage to using it but I don't know what it might be.

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Re: blob size after pg_lo_open

am 12.08.2004 16:35:09 von Thom Dyson

Thanks. Glad I wasn't missing anything obvious.

I need content length so that browsers get a progress meter. Working on an
application to sell downloads around 2 - 4 Mb.

Thom Dyson
Director of Information Services
Sybex, Inc.



pgsql-php-owner@postgresql.org wrote on 08/11/2004 06:13:21 PM:

> TDyson@sybex.com wrote:
I've tried using PHP's fstat to return the size, but I think the
> > object returned by pg_lo_open is not suitable.

> No, you can't use fstat() on a large object handle.

> I've hardly ever bothered with Content-length. There is probably some
> advantage to using it but I don't know what it might be.



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org