我最近将Bugzilla安装从3.6.4升级到5.0.1,并且在附加到错误的二进制文件(Word文档,PNG文件等)中出现了损坏。
后端数据库是带有UTF-8编码的MySQL 5.0.75,附件存储在名为attach_data(InnoDB类型)的表中,特定列是LONGBLOB。
以PNG文件为例,症状如此显示。如果您在控制台中查看类似文本文件的PNG文件,您会看到前两行看起来像:
37,903
在Bugzilla的升级版本中,数据已在数据库中更改,前两行如下所示:
504 MB
这遵循文件中的模式,其中任何build
字符已替换为每个附加文件中的<89>PNG
^Z
字符。其他字符如<U+0089>PNG
^Z
似乎有效,因为他们没有&#34; 00&#34;低位。升级期间似乎发生了此问题,并且还会继续向Bugzilla添加新的错误和附件。
我已经查看了新Bugzilla安装中的所有设置,并且没有看到任何可能导致此问题的明显设置。原始安装使用了古老版本的Perl:
"<XY>"
新安装使用的是稍微不那么古老的Perl版本:
"<U+00XY>"
任何人都可以想到我可能会忽略的其他设置或操作系统配置吗?如果有一种方法可以修复将新附件上传到数据库的方法,有没有办法将数据库中的现有附件转换为使用"<U+1234>"
字符回到预期的This is perl, v5.8.9 built for i386-freebsd-64int (with 1 registered patch, see perl -V for more detail)
个字符?< / p>
谢谢你,
格雷格