如何將server端的檔案刪除,也就是刪除資料後,一併將該相關檔案刪除:
舉例:index.php、photodel.php兩個網頁
資料庫欄位舉例:p_id(自動編號、主鍵)、p_name(紀錄檔案名稱及副檔名)
存放檔案的路徑:photo/
步驟一:在index.php頁面的表單插入二個隱藏欄位,p_id及p_name,而其值分別是資料庫欄位的p_id及p_name。
步驟二:index.php頁面做法跟刪除資料的做法與設定一樣,然後主索引鍵值選"表單變數"旁邊的空白欄位輸入p_id,全都設定好之後按下確定後,在程式碼內容裡加上下面一段語法:
先找到這一行:
這樣只要一個頁面就完成了,這個程式主要的重點在於unlink()這個函式,
它的作用就是叫php去刪除指定的檔案,而它的函式原型如下:
那為什麼要放在$Result1 = mysql_query($deleteSQL, $delfile) or die(mysql_error());之後$deleteGoTo = "photodel.php";之前呢?
其實只要放在header(sprintf("Location: %s", $deleteGoTo));這一行之前先執行unlink()函式就可以了,
因為header(sprintf("Location: %s", $deleteGoTo));這一行的意思就是轉址,
轉向你原本在刪除記錄後所要前往的網頁,
所以unlink()函式一定要在header(sprintf("Location: %s", $deleteGoTo));之前執行,
而為什麼要放在$Result1 = mysql_query($deleteSQL, $delfile) or die(mysql_error());之後,
主要是因為if判斷式的關係,在你插入刪除記錄行為的時候,
dw會自動加入一個if判斷式,判斷表單變數是否存在,
而會要在$Result1 = mysql_query($deleteSQL, $delfile) or die(mysql_error());之後,
主要是要確保unlink()這個函式會在if判斷式之內,避免程式發生錯誤。