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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] DV转DZ的程序,是否可以不修改原图片附件的路径

[复制链接]
jxwyr 发表于 2007-1-10 18:11:35 | 显示全部楼层 |阅读模式
转换论坛测试是成功的,
但是有个很大的问题,关于图片附件,我自己的BBS中很多图片在站点主页中被引用。也被其他的站点引用。
为了保证转换数据后 这些图片的地址路径不变化,如何修改转换文件dv7xacc-dz500.php

自己尝试修改了dv7xacc-dz500.php中的 这个部分

  1. $attachment        = 'dvbbs/'.$att['f_filename'];
复制代码

为这样
  1. $attachment        = ''.$att['f_filename'];
复制代码

结果是,在帖子中图片路径变成了http://uplodfile/……这样

麻烦版主指教下,如何保证所有的图片路径不修改,而且在帖子中也能正常的显示。

不用进行转换说明中的这个步骤
4.请将 dvbbs 的附件目录 UploadFile 更名为 dvbbs ,并将该目录及其下所有文件移至 Discuz! 的附件目录 attachments 下


以下是dv7xacc-dz500.php中关于转换附件的代码部分
  1. } elseif($step == 4) {        // 附件

  2.         if($start <= 1) {
  3.                 truncatetable('attachments');
  4.                 validid('f_id', 'upfile');
  5.         }

  6.         $query = "SELECT * FROM {$source_tablepre}upfile WHERE (f_id BETWEEN $start AND $end)";
  7.         $rs = $dbc->execute($query);

  8.         $fieldarray = array('f_id', 'f_announceid', 'f_boardid', 'f_userid', 'f_filename', 'f_filetype', 'f_filesize', 'f_readme', 'f_downnum', 'f_addtime');
  9.         while (!$rs->EOF) {
  10.                 foreach($fieldarray AS $field) {
  11.                         $att[$field] = daddslashes($rs->fields[$field]->value);
  12.                 }

  13.                 if($att['f_announceid']) {
  14.                         $aid                = $att['f_id'];
  15.                         $temp                = explode('|', $att['f_announceid']);
  16.                         $tid                = intval($temp[0]);
  17.                         $pid                = intval($temp[1]);
  18.                         if($tid && $pid) {
  19.                                 $dateline        = accesstimetounix($att['f_addtime']);
  20.                                 $filename        = random(8).".".$att['f_filetype'];
  21.                                 $filetype        = getfiletype($filename);
  22.                                 $filesize        = $att['f_filesize'];
  23.                                 $attachment        = 'dvbbs/'.$att['f_filename'];
  24.                                 $downloads        = $att['f_downnum'];
  25.                                 $description        = cutstr(htmlspecialchars($att['f_readme']), 90);
  26.                                 $isimage        = in_array($filetype, array('image/pjpeg', 'image/gif', 'image/bmp', 'image/png')) ? 1 : 0;
  27.                                 $uid                = $att['f_userid'];
  28.        
  29.                                 $sql1 = "INSERT INTO {$discuz_tablepre}attachments (`aid`, `tid`, `pid`, `dateline`,`readperm`,`filename`, `filetype`, `filesize`, `attachment`, `downloads`,`description`, `isimage`, `uid`)
  30.                                         VALUES ('$aid', '$tid', '$pid', '$dateline', '$readperm', '$filename', '$filetype', '$filesize', '$attachment', '$downloads', '$description', '$isimage', '$uid');";
  31.        
  32.                                 $sql2 = "UPDATE {$discuz_tablepre}threads SET attachment=1 WHERE tid='$tid'";
  33.        
  34.                                 if(mysqlquery($sql1)) {
  35.                                         mysqlquery($sql2);
  36.                                         $convertedrows ++;
  37.                                 } else {
  38.                                         reportlog("无法转换附件 $filename ");
  39.                                 }
  40.                                 $totalrows ++;
  41.                         }
  42.                 }

  43.                 $converted = 1;
  44.                 $rs->Movenext();
  45.         }
  46.         $rs->close();

  47.         if($converted || $end < $maxid) {
  48.                 continue_redirect();
  49.         } else {
  50.                 altertable('attachments', 'aid');
  51.                 report('附件');
  52.                 stay_redirect();
  53.         }
复制代码
kook12368 发表于 2007-1-10 18:14:44 | 显示全部楼层
牛X,,,支持下,,呵呵,,其实那只要是为了方便,转换后的附件管理嘛

回复

使用道具 举报

 楼主| jxwyr 发表于 2007-1-10 18:44:12 | 显示全部楼层
对于之前的附件,其实管理不管理都已经无所谓的了……关键是现在发贴的附件可以管理就是。

以前的不能使得链接失效就好……

附件的转换是个大问题,我有一个DVBBS转换后,很多贴中的附件图片都变成了
复制代码
纯数字了……按照论坛帮助去升级也不行。


  1. Q:为什么转换后有附件的帖子只显示attach标签,而不显示附件?
  2. A:原因分析:因为帖子表里未标记是否有附件,attach标签不进行解析.可以通过执行SQL语句来修复:
  3. UPDATE cdb_posts p, cdb_attachments a SET p.attachment =1 WHERE p.pid = a.pid;
复制代码
回复

使用道具 举报

紫琼 发表于 2007-1-11 10:19:24 | 显示全部楼层

回复 #3 jxwyr 的帖子

数据不是很大的话请 pm 我你原来的备份数据,我转换测试一下附件的问题~
回复

使用道具 举报

 楼主| jxwyr 发表于 2007-1-11 19:07:03 | 显示全部楼层
数据量很大……90MB的DVBBS论坛……现在已经由于DVBBS的问题,导致了论坛不能发贴。

所以准备关闭,换到DZ来……担心图片的链接问题,一直没有弄。

不知是否加QQ聊聊……辛苦麻烦,实在不好意思。
回复

使用道具 举报

紫琼 发表于 2007-1-12 10:11:48 | 显示全部楼层

回复 #5 jxwyr 的帖子

不好意思,我们不提供qq技术支持~
正如2#所说的,这样处理附件是为了转换后的方便附件管理,这是个好的方法,而不是你所说的问题~
回复

使用道具 举报

 楼主| jxwyr 发表于 2007-1-13 21:01:01 | 显示全部楼层
没事……还是很感谢的。
回复

使用道具 举报

lmgg 发表于 2007-1-14 00:04:08 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 16:51 , Processed in 0.020395 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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