我正在尝试将文件保存在数据库中,但无法检索它。结果不是有效文件。
隔离部分代码,我认为这应该可行:
$content = pg_escape_bytea (file_get_contents($tmp)); //image.jpg
header('Content-type: ' . $mime); // image/jpg
echo pg_unescape_bytea($content); exit;
$content
已存储,但我无法再次读取!
该怎么办?
我正在尝试将文件保存在数据库中,但无法检索它。结果不是有效文件。
隔离部分代码,我认为这应该可行:
$content = pg_escape_bytea (file_get_contents($tmp)); //image.jpg
header('Content-type: ' . $mime); // image/jpg
echo pg_unescape_bytea($content); exit;
$content
已存储,但我无法再次读取!
该怎么办?
一个可能的解释是您处于此配置中:
8.4
或更旧的libpq
库9.0
或更新hex
)在这种情况下,pg_unescape_bytea
将无法正确解码来自数据库的文本格式的 bytea 内容。作为一种解决方法,您可以添加到 php 代码中:
pg_query("SET bytea_output=escape");
在选择 bytea 内容之前,看看是否有区别。如果它确实解决了问题,您可以通过发出以下命令使其成为数据库的持久设置:
ALTER DATABASE mydb SET bytea_output=escape;
直到升级libpq
到新版本。