我有一个文件字符串,我无法解码以检索图像。我很确定它是UTF-8字符串,因为它以0xFF开头。绝对是一个十六进制值,它的259个字符长。我相信它是来自MYSQL服务器列中的二进制文件转储。
我非常习惯于能够检索Base64图像字符串并将其通过imagemagick传递以创建图像,但是当我将这些图像字符串交给我时,当有人告诉我这些都是完整的文件时,我完全不知所措。 259个字符似乎很小,但我想我也可能只是缺少一种获取整个字符串的转换通行证。
“ 0xFFD8FFE1149F4578 ... 1320002000000140000”(长度为259个字符。)
答案 0 :(得分:0)
当您将MariaDB的LOAD_FILE用于varchar(259)时,会发生这种情况。将发送整个文件,但仅保存前259个字符。事实证明,了解哪种类型的文件要少得多,但是如果您不使用正确的列类型来设置数据库,则会发生什么情况。当我使用LONGTEXT类型进行此实验时。我能够加载文件并再次选择它们。尽管它们最终确实进入了MariaDB的etc文件夹中带有临时文件夹的一个非常奇怪的子目录。
您的所有建议都死了,只是没有全部数据。
这是正确的,MySQL website:
“如果未启用严格的SQL模式,并且您为CHAR或VARCHAR列分配了一个超出该列的最大长度的值,则该值将被截断以适合该值并生成警告。非空格字符会导致发生错误(而不是警告),并且使用严格的SQL模式会抑制该值的插入。请参见第5.1.11节“服务器SQL模式”。