转换论坛测试是成功的,
但是有个很大的问题,关于图片附件,我自己的BBS中很多图片在站点主页中被引用。也被其他的站点引用。
为了保证转换数据后 这些图片的地址路径不变化,如何修改转换文件dv7xacc-dz500.php
自己尝试修改了dv7xacc-dz500.php中的 这个部分
- $attachment = 'dvbbs/'.$att['f_filename'];
复制代码
为这样
- $attachment = ''.$att['f_filename'];
复制代码
结果是,在帖子中图片路径变成了http://uplodfile/……这样
麻烦版主指教下,如何保证所有的图片路径不修改,而且在帖子中也能正常的显示。
不用进行转换说明中的这个步骤
4.请将 dvbbs 的附件目录 UploadFile 更名为 dvbbs ,并将该目录及其下所有文件移至 Discuz! 的附件目录 attachments 下
以下是dv7xacc-dz500.php中关于转换附件的代码部分
- } elseif($step == 4) { // 附件
- if($start <= 1) {
- truncatetable('attachments');
- validid('f_id', 'upfile');
- }
- $query = "SELECT * FROM {$source_tablepre}upfile WHERE (f_id BETWEEN $start AND $end)";
- $rs = $dbc->execute($query);
- $fieldarray = array('f_id', 'f_announceid', 'f_boardid', 'f_userid', 'f_filename', 'f_filetype', 'f_filesize', 'f_readme', 'f_downnum', 'f_addtime');
- while (!$rs->EOF) {
- foreach($fieldarray AS $field) {
- $att[$field] = daddslashes($rs->fields[$field]->value);
- }
- if($att['f_announceid']) {
- $aid = $att['f_id'];
- $temp = explode('|', $att['f_announceid']);
- $tid = intval($temp[0]);
- $pid = intval($temp[1]);
- if($tid && $pid) {
- $dateline = accesstimetounix($att['f_addtime']);
- $filename = random(8).".".$att['f_filetype'];
- $filetype = getfiletype($filename);
- $filesize = $att['f_filesize'];
- $attachment = 'dvbbs/'.$att['f_filename'];
- $downloads = $att['f_downnum'];
- $description = cutstr(htmlspecialchars($att['f_readme']), 90);
- $isimage = in_array($filetype, array('image/pjpeg', 'image/gif', 'image/bmp', 'image/png')) ? 1 : 0;
- $uid = $att['f_userid'];
-
- $sql1 = "INSERT INTO {$discuz_tablepre}attachments (`aid`, `tid`, `pid`, `dateline`,`readperm`,`filename`, `filetype`, `filesize`, `attachment`, `downloads`,`description`, `isimage`, `uid`)
- VALUES ('$aid', '$tid', '$pid', '$dateline', '$readperm', '$filename', '$filetype', '$filesize', '$attachment', '$downloads', '$description', '$isimage', '$uid');";
-
- $sql2 = "UPDATE {$discuz_tablepre}threads SET attachment=1 WHERE tid='$tid'";
-
- if(mysqlquery($sql1)) {
- mysqlquery($sql2);
- $convertedrows ++;
- } else {
- reportlog("无法转换附件 $filename ");
- }
- $totalrows ++;
- }
- }
- $converted = 1;
- $rs->Movenext();
- }
- $rs->close();
- if($converted || $end < $maxid) {
- continue_redirect();
- } else {
- altertable('attachments', 'aid');
- report('附件');
- stay_redirect();
- }
复制代码 |