使用php将pdf远程文件存储在postgres DB中

时间:2011-03-11 11:49:52

标签: php database postgresql pdf file-upload

我有一些pdf(或txt,odt,doc)文件用于存储在Postgres DB中。 我使用这个php函数来读取文件:

$fp = fopen($name, 'rb');

$content = fread($fp, filesize($name));

$content = addslashes($content);

fclose($fp);

然后尝试存储在db:

$sql = "insert into Table(column) values ('$content'::bytea)";

$result = @pg_query($sql);

“column”是bytea类型。

当我用pdf文件执行脚本时,出现以下错误:

ERROR: invalid byte sequence for encoding "UTF8": 0xe2e3cf HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

当我使用doc文件执行脚本时,出现以下错误:

ERROR: invalid input syntax for type bytea

当我用txt文件执行脚本时,没有错误:

出了什么问题,存储文件的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用pg_escape_string代替addslasheshttp://www.php.net/manual/en/function.pg-escape-string.php