我两三年前就安装了 OSTicket v1.9.12。除了图像附件之外,它运行良好。最初附件保存在 MySQL 中,但随着票证开始增长,系统变得有点慢,我配置并启用了“文件系统上的附件”插件。
几天前它还运行良好。但突然附件无法正确显示,我开始深入研究问题,发现图像可以正确存储在 OSTicket 文件系统 (Windows) 上。
但是当有人尝试在浏览器中查看附件时,它会抛出错误“无法显示,因为它包含错误”。然后我下载了一个这样的有问题的图像附件,并在文本编辑器中打开它。我发现每个图像附件(如 jpg、png 或 gif)的开头都有 LF(换行符)。
如果我从下载的文件中删除这个 LF,图像就会再次看起来不错。
有人在 OSTicket 或其他系统中遇到过这样的问题吗?有人能解决这个问题吗?谢谢。
答案1
多么棒的分析。
我不知道您是否能够解决您的问题,但是我遇到了同样的问题,感谢您,我解决了下面的问题。
在include/class.file.php中,找到sendData函数,ob_clean();
在第118行和119行之间添加。
现在你应该有:
- 第 118 行:
try {
- 第 119 行:
ob_clean();
- 第 120 行:
$bk->passthru();
您的图像文件现在可以正确显示。