我到处(谷歌、stackoverflow 等)寻找一些关于如何使用 PostgreSQL pg_read_binary_file()
函数的文档。
我能找到的唯一有意义的是this page在官方文档中。
每次我尝试使用这个函数时都会出错。
例如:
SELECT pg_read_binary_file('/some/path/and/file.gif');
ERROR: absolute path not allowed
或
SELECT pg_read_binary_file('file.gif');
ERROR: could not stat file "file.gif": No such file or directory
我是否需要将我的文件放在特定目录中以便 Postgres 访问它?如果是什么目录?
如果重要的话,我查看此函数的原因是因为我试图在没有 doing crazy things 的情况下将文件插入数据库.
最佳答案
如@a_horse_with_no_name 和@guedes 所述,解决方案是确保上传的文件位于服务器上的 PGDATA 目录中。
postgres documentation确实按照要求说明了文件位置。
此外,我还创建了一个从另一个目录到 PGDATA 目录的符号链接(symbolic link),这样我就不会干扰任何 postgres 数据结构。这似乎运作良好,我不必执行上述任何操作 crazy things .
关于PostgreSQL 9.x - pg_read_binary_file & 将文件插入 bytea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048649/