Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 请问这是XConvert的bug吗?难道都没人发现问题?

[复制链接]
chris1081 发表于 2012-7-29 15:57:42 | 显示全部楼层 |阅读模式
我的论坛是从NT3.5转换到X2.5,结果出现附件图片无法显示的问题,论坛里面发帖3天,有好些人帮助,也查了不少资料都没解决问题。其中有论坛板块的负责人有回复,但是可以看出来完全没有仔细看问题,随随便便回答敷衍下。

于是自己查代码找原因。发现问题为:nt版本 sql server 2005附件表中的isimage字段值转换到x2.5后png,gif类型的值为1,而jpg格式的却为0,但是图片无法显示,将该值修改为1之后能正常显示。

找到问题之后,再去查看转换代码,发现data\nt\dznt3.5sql - 25X\step_6.php中如下代码
  1. $query = $xc->db['source']->query("SELECT * FROM {$source_tablepre}attachments WHERE aid>=$start AND aid<=$end")
  2.         or die("检索数据表 '{$source_tablepre}attachments' 错误!请将表 '{$source_tablepre}attachments' 字段类型为 nText 的改为 Text 类型。");


  3. while($a = $xc->db['source']->fetch_array($query)) {
  4.         $a                = daddslashes(array_change_key_case($a));

  5.         $aid                = $a['aid'];
  6.         $tid                = $a['tid'];
  7.         $pid                = $a['pid'];
  8.         $uid                = $a['uid'];
  9.         $downloads        = $a['downloads'];
  10.         $atid                = (string)$tid;
  11.         $tableid        = $atid{strlen($atid)-1};

  12.        
  13.         $filetype        = $a['filetype'];
  14.         $dateline        = timetounix($a['postdatetime']);
  15.         $filename        = $a['attachment'];
  16.         $filesize        = $a['filesize'];
  17.         $attachment        = str_replace('\\\\', '/', $a['filename']);
  18.         $remote                = 0;
  19.         $description        = $a['description'];
  20.         $readperm        = $a['readperm'];
  21.         $price                = $a['attachprice'];
  22. <font color="#ff0000">        $isimage        = in_array($filetype, array('image/pjpeg', 'image/gif', 'image/bmp', 'image/png')) ? 1 : 0;</font>
  23.         $width                = $a['width'];
  24.         $thumb                = 0;
复制代码
可以看出来 $filetype值来源于数据库的filetype字段的值,下图我们看看sql server中附件表的内容


filetype列的字如果是jpg图片的,存的是image/jpeg,而转换代码中$isimage        = in_array($filetype, array('image/pjpeg', 'image/gif', 'image/bmp', 'image/png')) ? 1 : 0;  判断的为 'image/pjpeg',导致转换后 jpg图片该字段都为0,所有就有了图片附件中jpg图片不显示的情况。官方出的转换程序,而且已经是2.5.1版本了,难道从来都没真正测试过就发布出来吗?该问题不知道浪费了多少人的时间,估计到最后也没解决好。希望对后来的朋友有所帮助


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
baxter 发表于 2012-7-29 16:36:51 | 显示全部楼层
感谢反馈,已收集,集中反映
回复

使用道具 举报

 楼主| chris1081 发表于 2012-7-29 17:04:46 | 显示全部楼层
baxter 发表于 2012-7-29 16:36
感谢反馈,已收集,集中反映

现在图片是显示出来了,但是discuz代码和图片同时显示的问题又来了。



求助啊 ,求助啊!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

watzq 发表于 2012-7-29 18:14:33 | 显示全部楼层
感谢楼主,我也遇到这个问题了,帮顶啊。。。
回复

使用道具 举报

evenzhou 发表于 2012-7-31 14:07:53 | 显示全部楼层
谢谢反馈,问题已经确认
回复

使用道具 举报

elevensky 发表于 2012-7-31 14:34:33 | 显示全部楼层
chris1081 发表于 2012-7-29 17:04
现在图片是显示出来了,但是discuz代码和图片同时显示的问题又来了。

回复,这个也是附件图片的标签,看看对应的id,库里和附件里有么?
回复

使用道具 举报

 楼主| chris1081 发表于 2012-7-31 14:45:05 | 显示全部楼层
elevensky 发表于 2012-7-31 14:34
回复,这个也是附件图片的标签,看看对应的id,库里和附件里有么?

感谢回复,我目前是这个方式解决的:https://discuz.dismall.com/thread-3000567-1-1.html

不知道会不会引起什么其他问题。
回复

使用道具 举报

crx349 发表于 2012-7-31 18:34:51 | 显示全部楼层
确实是bug 感谢反馈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 13:28 , Processed in 0.026413 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表