Обсуждение: error inserting big files in DB.

Поиск
Список
Период
Сортировка

error inserting big files in DB.

От
Marlos Corrêa
Дата:
Hi, Folks.

I've a problem so i can use some help.
I've trying to put a 5 MB file in my database, but i got an error.
Anyone knows if  "lo_import" or "lo" (type of bytea) has a limit of
data transferred in one operation?
Some people tell me that i can't transferr more than 1 MB a time to
Postgresql, so i need to
divide my file in many small pices, than upload they one at time, and
finally, use some workaround in DB to restore my original file. Is
this correct?
Below is a piece of code that i use:

$conteudo=addslashes(fread(fopen($arq, "r"), filesize($arq)));
$sql="insert into arquivos (nome, tipo, tamanho, dados) values
('$arq_name', '$arq_type', '$arq_size', lo_import('" .
addslashes($arq) . "'));";

I would be pleased if anyone could help me.
Thanx in advance.

Re: error inserting big files in DB.

От
Richard Huxton
Дата:
Marlos Corrêa wrote:
> Hi, Folks.
>
> I've a problem so i can use some help.
> I've trying to put a 5 MB file in my database, but i got an error.
> Anyone knows if  "lo_import" or "lo" (type of bytea) has a limit of
> data transferred in one operation?

There are two things here - large-objects (accessed by the lo_xxx
functions) and bytea - which are just a standard data-type.

> Some people tell me that i can't transferr more than 1 MB a time to
> Postgresql, so i need to

Which people? Did they quote the manuals?

> divide my file in many small pices, than upload they one at time, and
> finally, use some workaround in DB to restore my original file. Is
> this correct?

Not as far as I have heard. Did you try the manuals?

> Below is a piece of code that i use:
>
> $conteudo=addslashes(fread(fopen($arq, "r"), filesize($arq)));
> $sql="insert into arquivos (nome, tipo, tamanho, dados) values
> ('$arq_name', '$arq_type', '$arq_size', lo_import('" .
> addslashes($arq) . "'));";
>
> I would be pleased if anyone could help me.

You said you got an error, but don't actually say what error it was.
Come to think of it, you don't say what language that code fragment is
in - presumably PHP since you have "addslashes()" mentioned. What was
the error?

--
   Richard Huxton
   Archonet Ltd


Re: error inserting big files in DB.

От
"Joshua D. Drake"
Дата:
Marlos Corrêa wrote:
> Hi, Folks.
>
> I've a problem so i can use some help.
> I've trying to put a 5 MB file in my database, but i got an error.
> Anyone knows if  "lo_import" or "lo" (type of bytea) has a limit of
> data transferred in one operation?
> Some people tell me that i can't transferr more than 1 MB a time to
> Postgresql, so i need to
> divide my file in many small pices, than upload they one at time, and
> finally, use some workaround in DB to restore my original file. Is
> this correct?
> Below is a piece of code that i use:
>
> $conteudo=addslashes(fread(fopen($arq, "r"), filesize($arq)));
> $sql="insert into arquivos (nome, tipo, tamanho, dados) values
> ('$arq_name', '$arq_type', '$arq_size', lo_import('" .
> addslashes($arq) . "'));";
>

It sounds to me, with limited information that you need to edit your
php.ini to allow uploads of greater than 5MB. The actual limit of a
large object is 1 Gigbyte I believe.

Sincerely,

Joshua D. Drake


> I would be pleased if anyone could help me.
> Thanx in advance.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq


--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/