91豆麻精品91久久久久久,中文在线资源,国产精品女视频,yw.139尤物在线精品视频

?
  歡迎訪問全國企業網站設計NO.1網站開發商平臺 付款方式
主頁 > 網站建設 > 建站知識 > Dedecms刪除文檔同時刪除圖片及附件的方法

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

POST TIME:2020-10-09

織夢前臺會員發布的信息在刪除時總是不能刪除附件,在這里以普通文章圖片附件為例跟大家交流一下。
 
  dede上傳的附件信息統統存在uploads表里,而這些附件怎樣才能跟其母信息相關聯?關鍵是uploads表里的arcid,也就是母信息的id號。dede在刪除母信息時也是通過arcid來刪除其附件信息。而前臺會員上傳的附件信息在保存到uploads表里時arcid默認為0,所以在刪除母信息時附件肯定刪除不了。
 
  例如:添加一條記錄,他的id號為1(以arctiny表的id為準 ),信息內容中有5張圖片,在保存時這5張圖片信息將存為5條uploads記錄,并且這5條記錄的arcid都為1(dede默認為0)。所以只要我們在上傳附件信息時將其母信息的id號同時保存到uploads表里就可以了。
 
  dede后臺管理員上傳附件時用到兩個函數 AddMyAddon()和ClearMyAddon(),AddMyAddon是用來將上傳的附件信息存到緩存文件里,在保存母信息時用緩存文件內容替換uploads表里的附件信息記錄,等一切都保存完后ClearMyAddon清除緩存。在這里我們移花接木將這兩個函數用在前臺用戶上。
 
  第一步:打開member/memberlogin.class.php,
 
  在第3行添加:session_start();//主要是為了給每個用戶建立隨機id號
 
  在第84行添加 AddMyAddon函數和ClearMyAddon函數,防止拷貝錯誤也可以直接打開include/userlogin.class.php文件在79行找到這兩個函數:
 
Copy to ClipboardLiehuo.Net Codes引用的內容:[www.dede58.com]
/***************************************** 
發布文檔臨時附件信息緩存、發文檔前先清空附件信息 
發布文檔時涉及的附件保存到緩存里,完成后把它與文檔關連 
******************************************/ 
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); 
//清理附件,如果關連的文檔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 ; 
//把附件與文檔關連 
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引用的內容:[www.dede58.com]
$fid = $dsql->GetLastID(); 
AddMyAddon($fid, $filename);
第三步:打開member/article_add.php(編輯的話就打開article_edit.php,大同小異),, 
 
大概在16行添加:
 
Copy to ClipboardLiehuo.Net Codes引用的內容:[www.dede58.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("無法獲得主鍵,因此無法進行后續操作!","-1"); 
exit(); 
}
 
ClearMyAddon();//添加-->保存后清除緩存。
 
ok了!這樣添加信息后縮略圖和信息內容中的圖片都可以刪除了
? 主站蜘蛛池模板: 绥滨县| 潜江市| 太和县| 乌鲁木齐市| 青川县| 咸丰县| 英吉沙县| 潢川县| 龙门县| 尼木县| 兴隆县| 定陶县| 无为县| 简阳市| 江孜县| 抚顺市| 涡阳县| 芒康县| 镶黄旗| 谷城县| 福鼎市| 都江堰市| 贵溪市| 达日县| 塔河县| 黄梅县| 新化县| 深州市| 墨江| 襄汾县| 双流县| 淮滨县| 新营市| 勐海县| 武汉市| 德昌县| 清苑县| 宁南县| 临夏市| 青岛市| 日喀则市|