问题标签 [bytea]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
23757 浏览

java - 使用 Java 在 Postgresql 中存储和检索图像

我是 Java 编程新手,我正在搜索 Java 代码以在 PostgreSQL 中存储图像并检索图像。

在 PostgreSQL 中,我使用了 Bytea 数据类型。图像被存储。但是当我检索时,我得到了 NULL。我无法获取图像。

对此的任何示例或任何其他建议都会有所帮助。

0 投票
1 回答
442 浏览

postgresql - Postgres - 将 bytea PNG 列转换为 GeoTiff

我已将大量图块加载到 postgres 数据库中,以在图块服务器中使用。这些都以 PNG 格式加载到 bytea 列中。

我现在发现瓦片服务器代码需要这些是 GEOTiff 格式。

命令:-

gdal_translate -of GTiff -expand rgb -co COMPRESS=DEFLATE -co ZLEVEL=6

完美运行。

但是,大量数据已经加载到远程服务器上。那么我可以在数据库中进行转换,而不是检索每个文件并单独对它们使用 gdal_translate 吗?我知道 gdal 通过安装在我的服务器上的光栅支持与 postgis 2.0 集成。

如果没有,关于如何有效地做到这一点的任何建议。

0 投票
1 回答
1067 浏览

c - 在 PostgreSQL 中准备、存储、检索加密数据

有谁知道如何正确准备将 BYTEA 数据类型插入到 postgresql 中?我有一个从 libmcrypt 生成的加密字符串。我希望将加密存储在定义为“cdata bytea not null”的表列中

我的核心与命令行完美配合,但现在我希望将加密存储在 RDBMS 中,作为对文件的操作。代码片段如下:

必须有一种方法可以成功插入和查询加密字符串以进行解密。

提前致谢。

0 投票
1 回答
612 浏览

c - 使用 libpq 库将图像发送到 postgresql db 中的 bytea 列时出错

我正在用 C 编码并使用 Postgresql 的 Libpq 库,我想将 PNG 图像以“bytea”类型存储到数据库中。我在网上搜索了几个小时,找不到一个很好的例子来处理这项工作,所以想写在这里并寻求你的帮助。

我有 12 个要绑定的参数,其中一个是 PNG 图像。其余的是 char*,它们没有问题。

以下是我到目前为止所尝试的。(我正在编写代码的必要部分):

它编译没有问题,但是在运行时将图像存储到数据库时,会发生经典的运行时错误:

“..._debug.exe 中 0x6d3dc220 处的未处理异常:0xC0000005:访问冲突读取位置 0x000000007f91e508。”

似乎与内存处理有关。

无论我尝试了什么,我都无法让它运行,也看不到我的错误。我是否必须使用 Oids 通过 PQexecParams 将二进制数据发送到 db?还是我缺少的其他东西?如果有人帮助我,我真的很感激。

提前致谢。

编辑:我刚刚意识到,如果我使用 Insert 语句,它工作得很好,但这个函数没有。通常它可以工作。奇怪的。

0 投票
1 回答
483 浏览

c - 从 Postgresql 数据库中检索图像文件返回插入两倍大的数据(通过 libpq 库)

我正在使用 Postgresql 数据库的 libpq 库,我在从 db 中检索 bytea 数据时遇到问题。我无法解决我的问题,所以想问你。每当我尝试将图像文件插入 db 并取回时,返回数据的大小始终是我发送的数据的 2 倍。实际上,确切的等式是:检索到的数据 = 发送的数据 * 2 + 2.(以字节为单位)。所以,我还想不通,我可能遗漏了一些东西:/

我使用的示例代码如下:

如果你们帮助我,我将不胜感激。我对寻找它的原因感到非常无聊。

提前致谢。

编辑:我跟踪存储在磁盘中的数据,插入数据的大小相同(58573 字节)。获取数据时,数据会变大两倍...

0 投票
1 回答
358 浏览

python - 在 Python 中解码一个二进制值,它将提供与 Postgres 解码相同的输出

我必须'9DAFF2834DDD73C18D79E31DE22F0D49DF13E525D3FFAE599530BECCD1B916FF'在 python 中将值解码为十六进制:

为此我正在做

但是,postgres 的价值如下:

输出是:

Python 中是否有任何等价物可以提供与 Postgres 中相同的结果(Postgres 输出是一个 bytea)?

0 投票
5 回答
25589 浏览

python - 如何将图像文件保存在 Postgres 数据库中?

出于学习目的,我正在使用 Python+Flask 创建一个站点。我想从数据库中恢复图像并将其显示在屏幕上。而是一步一个脚印。

我不知道如何将图像保存在我的数据库中。我的搜索只显示我必须bytea在我的数据库中使用一种类型。然后我得到我的图像并以某种方式(??)将其转换为字节数组(bytea == 咬数组?)并以某种方式(??)在插入命令中使用该数组。

我能够发现(也许)如何在 Java(这里)和 C#(这里)中做到这一点,但我真的很想使用 Python,至少现在是这样。

有人能帮我吗?

这个网站上有很多这样的问题。但他们中的大多数(轻松超过 85%)被回答为“您不应该将图像保存在数据库中,它们属于 fs”并且无法回答问题。其余的并不能完全解决我的问题。因此,如果重复项有这种答案,请不要将其标记为重复项。

0 投票
4 回答
19715 浏览

php - 将图像存储在 PostgreSQL 数据库中的 bytea 字段中

我使用 PHP 将图像存储在 PostgreSQL 数据库中,列类型为 bytea。问题是每次我尝试在浏览器中加载图像时它都不会出现。Firefox 开发者控制台显示图像被截断或损坏。

PHP代码:

我需要将上传的图像存储在数据库中-我实际上是在使用 heroku 谢谢

0 投票
1 回答
2534 浏览

delphi - PostgreSQL 9.X bytea 以“hex”或“escape”表示缩略图

我的应用程序(在 Delphi 和 ZEOS 组件中开发)使用 PostgreSQL 8.4 并将一些缩略图图像存储到一个bytea列中。

我想迁移到 PostgreSQL 9.2 并恢复转储,一切正常,除非我尝试检索这些图像:Postgres 9.2hex用于输出表示,而不是escape在 Postgres 8.4 中使用。

有两种可能的解决方案:更改 Postgres 9.2 的escape表示设置或hex通过应用程序更改二进制数据中的字符串。但是最好的解决方案是什么?为什么 PostgreSQL 9.X 改为hexforbytea表示?
这是一个简单的设置还是有技术原因?

0 投票
2 回答
5150 浏览

sql - 使用 perl/SQL 将文件插入 Postgres bytea 列

我正在使用旧系统,需要找到一种方法将文件插入到使用 Perl 的预先存在的 Postgres 8.2 bytea 列中。

到目前为止,我的搜索使我相信以下几点:

  1. 对此没有共识的最佳方法。
  2. lo_import 看起来很有希望,但我显然太迟钝了,无法让它工作。

我希望做类似以下的事情

我的脚本没有 lo_import/bytea 部分。但是有了它,我得到了这个错误:

DBD::Pg::st 执行失败:错误:列“内容”的类型为 bytea,但表达式在字符 176 处 > 为 oid 类型 提示:您将需要重写或强制转换表达式。

我认为我做错的是我没有正确地将实际的二进制文件传递给数据库。我想我正在传递文件路径,而不是文件本身。如果这是真的,那么我需要弄清楚的是如何将文件打开/读入 tmp 缓冲区,然后使用缓冲区进行导入。

还是我离这里很远?只要它们与 Perl 5.8/DBI/PG 8.2 一起使用,我愿意接受任何指针或替代解决方案。