文件的複製和刪除功能
1,修改前端程式碼
在複製和刪除按鈕這裡分別加上get參數(shù),使其在發(fā)送get請求時(shí)發(fā)送檔案的id( file)和動(dòng)作類型action
程式碼如下:
<?php <a href="?file=<?php echo $v['file_id'];?>&action=copy">復(fù)制</a>| <a href="?file=<?php echo $v['file_id'];?>&action=del">刪除</a>
2,取得get參數(shù)進(jìn)行複製刪除動(dòng)作
首先在index.php裡取得到get參數(shù)file_id,然後查詢檔案表netdisk_file,從中取得到需要複製和刪除的對應(yīng)的檔案資訊,
執(zhí)行檔的複製操作copy()與刪除操作unlink()
程式碼如下:
<?php //獲取get參數(shù) $file_id=isset($_GET['file'])?intval($_GET['file']):0; //復(fù)制和刪除功能 $action=isset($_GET['action'])?trim($_GET['action']):""; if($action=="del"){ // unset(); $sql="select *from netdisk_file where file_id=$file_id"; $del_file=fetchRow($sql); unlink($del_file['file_save']); //刪除數(shù)據(jù)庫里的數(shù)據(jù) $sql="delete from netdisk_file where file_id=$file_id"; if(!mysql_query($sql)){ echo '數(shù)據(jù)庫數(shù)據(jù)刪除失敗'; }; }elseif ($action=="copy"){ $sql="select *from netdisk_file where file_id=$file_id"; $copy_file=fetchRow($sql); $filesavename=$copy_file['file_save']; if(file_exists("$filesavename.bak")){ echo '文件名沖突,復(fù)制失敗'; } if(!copy("$filesavename","$filesavename.bak")){ echo "復(fù)制失敗"; }else{ $file_copy_name=$copy_file["file_name"]; $file_copy_size=$copy_file["file_size"]; $file_copy_id=$copy_file["folder_id"]; $sql="insert into netdisk_file (file_name,file_save,file_size,file_time,folder_id) values('$file_copy_name.bak','$filesavename.bak',$file_copy_size,now(),$file_copy_id)"; if(!mysql_query($sql)){ unlink($uploadfile_save); echo "寫入數(shù)據(jù)庫出錯(cuò)"; } } }
#3,效果顯示
##複製展示:
點(diǎn)複製前的頁面:
點(diǎn)完複製後:
# 資料庫所發(fā)生的變更:
刪除展示:
#刪除前的頁面:
刪除後的頁面:
資料庫對應(yīng)的也發(fā)生了改變