在将文件图像插入数据库之前,我使用了一些 Node.js 代码来流式传输文件图像。我在将数据插入相关的 MySQL 表字段时遇到问题。所以我console.log(streamedFileContent)
在服务器上运行以查看这些数据是关于什么的,我得到了这个:
<Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 03 9e 00 00 03 52 08 06 00 00 00 0d a5 11 28 00 00 00 04 73 42 49 54 08 08 08 08 7\
c 08 64 88 00 ... 150808 more bytes>
此数据的适当 MySQL 字段类型应该是什么?
SQL 是文本语言。因此,您必须将二进制数据转换为其文本表示形式(固体十六进制代码,例如“MySQL”->“4D7953514C”)并在构建查询文本或附加文本参数时使用它,并在该值上使用UNHEX()函数用于在服务器端重建二进制值的查询文本。
避免超过
max_packet_size
查询文本的值,如果需要在 MySQL 配置文件中增加它。请记住——文本表示比二进制表示长 2 倍。如果要插入到表中的文件对于 MySQL 服务器是本地文件,则可以使用LOAD_FILE()函数。