国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

Dedecms刪除文檔同時刪除圖片及附件的方法

2024-07-12 09:07:21
字體:
供稿:網(wǎng)友
織夢前臺會員發(fā)布的信息在刪除時總是不能刪除附件,在這里以普通文章圖片附件為例跟大家交流一下。
 
  dede上傳的附件信息統(tǒng)統(tǒng)存在uploads表里,而這些附件怎樣才能跟其母信息相關(guān)聯(lián)?關(guān)鍵是uploads表里的arcid,也就是母信息的id號。dede在刪除母信息時也是通過arcid來刪除其附件信息。而前臺會員上傳的附件信息在保存到uploads表里時arcid默認為0,所以在刪除母信息時附件肯定刪除不了。
 
  例如:添加一條記錄,他的id號為1(以arctiny表的id為準 ),信息內(nèi)容中有5張圖片,在保存時這5張圖片信息將存為5條uploads記錄,并且這5條記錄的arcid都為1(dede默認為0)。所以只要我們在上傳附件信息時將其母信息的id號同時保存到uploads表里就可以了。
 
  dede后臺管理員上傳附件時用到兩個函數(shù) AddMyAddon()和ClearMyAddon(),AddMyAddon是用來將上傳的附件信息存到緩存文件里,在保存母信息時用緩存文件內(nèi)容替換uploads表里的附件信息記錄,等一切都保存完后ClearMyAddon清除緩存。在這里我們移花接木將這兩個函數(shù)用在前臺用戶上。
 
  第一步:打開member/memberlogin.class.php,
 
  在第3行添加:session_start();//主要是為了給每個用戶建立隨機id號
 
  在第84行添加 AddMyAddon函數(shù)和ClearMyAddon函數(shù),防止拷貝錯誤也可以直接打開include/userlogin.class.php文件在79行找到這兩個函數(shù):
 
Copy to ClipboardLiehuo.Net Codes引用的內(nèi)容:[www.CUOxin.com]
/***************************************** 
發(fā)布文檔臨時附件信息緩存、發(fā)文檔前先清空附件信息 
發(fā)布文檔時涉及的附件保存到緩存里,完成后把它與文檔關(guān)連 
******************************************/ 
function AddMyAddon($fid, $filename) 
$cacheFile = DEDEDATA.'/cache/addon-2'.session_id().'.inc'; 
if(!file_exists($cacheFile)) 
$fp = fopen($cacheFile, 'w'); 
fwrite($fp, '<'.'?php'." "); 
fwrite($fp, "$myaddons = array(); "); 
fwrite($fp, "$maNum = 0; "); 
fclose($fp); 
} //liehuo.net 
include($cacheFile); 
$fp = fopen($cacheFile, 'a'); 
$arrPos = $maNum; 
$maNum++; 
fwrite($fp, "$myaddons[$maNum] = array('$fid', '$filename'); "); 
fwrite($fp, "$maNum = $maNum; "); 
fclose($fp); 
//清理附件,如果關(guān)連的文檔ID,先把上一批附件傳給這個文檔ID 
function ClearMyAddon($aid=0, $title='') 
global $dsql; 
$cacheFile = DEDEDATA.'/cache/addon-2'.session_id().'.inc'; 
$_SESSION['bigfile_info'] = array(); 
$_SESSION['file_info'] = array(); 
if(!file_exists($cacheFile)) 
return ; 
//把附件與文檔關(guān)連 
if(!empty($aid)) 
include($cacheFile); 
foreach($myaddons as $addons) 
if(!empty($title)) { 
$dsql->ExecuteNoneQuery("Update `dede_uploads` set 
 
arcid='$aid',title='$title' where aid='{$addons[0]}'"); 
else { 
$dsql->ExecuteNoneQuery("Update `dede_uploads` set 
 
arcid='$aid' where aid='{$addons[0]}' "); 
@unlink($cacheFile); 
}
第二部:打開member/inc/inc_archives_functions.php 
在144行$dsql->ExecuteNoneQuery($inquery);下面添加:
 
Copy to ClipboardLiehuo.Net Codes引用的內(nèi)容:[www.CUOxin.com]
$fid = $dsql->GetLastID(); 
AddMyAddon($fid, $filename);
第三步:打開member/article_add.php(編輯的話就打開article_edit.php,大同小異),, 
 
大概在16行添加:
 
Copy to ClipboardLiehuo.Net Codes引用的內(nèi)容:[www.CUOxin.com]
ClearMyAddon();//添加-->先清除一下緩存
$cInfos = $dsql->GetOne("Select * From `dede_channeltype` where id='$channelid'; "); 
 
在大概83行 
//生成文檔ID 
$arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$mid); 
if(empty($arcID)) 
ShowMsg("無法獲得主鍵,因此無法進行后續(xù)操作!","-1"); 
exit(); 
}
 
ClearMyAddon();//添加-->保存后清除緩存。
 
ok了!這樣添加信息后縮略圖和信息內(nèi)容中的圖片都可以刪除了
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 资兴市| 阳曲县| 蒙自县| 红安县| 台东县| 尼玛县| 许昌市| 定南县| 安龙县| 穆棱市| 荆门市| 青神县| 大宁县| 清远市| 邓州市| 内黄县| 合肥市| 钟山县| 益阳市| 溧水县| 临湘市| 济阳县| 邹平县| 二连浩特市| 通渭县| 扎兰屯市| 离岛区| 丰台区| 江城| 青川县| 金山区| 贵溪市| 烟台市| 运城市| 宁阳县| 三都| 汤原县| 濉溪县| 芜湖市| 舟山市| 静乐县|