如何將server端的檔案刪除,也就是刪除資料後,一併將該相關檔案刪除:

舉例:index.php、photodel.php兩個網頁

資料庫欄位舉例:p_id(自動編號、主鍵)、p_name(紀錄檔案名稱及副檔名)

存放檔案的路徑:photo/

步驟一:在index.php頁面的表單插入二個隱藏欄位,p_id及p_name,而其值分別是資料庫欄位的p_id及p_name。

驟二:index.php頁面做法跟刪除資料的做法與設定一樣,然後主索引鍵值選"表單變數"旁邊的空白欄位輸入p_id,全都設定好之後按下確定後,在程式碼內容裡加上下面一段語法:先找到這一行:

先找到這一行:

$Result1 = mysql_query($deleteSQL, $delfile) or die(mysql_error());

在這一行之後,在找到這一行:

$deleteGoTo = "photodel.php";

在這二行中間的任何一個地方,加上下面二行程式碼

$photo = $_POST['p_name'];
unlink("photo/$photo");

這樣只要一個頁面就完成了,這個程式主要的重點在於unlink()這個函式,它的作用就是叫php去刪除指定的檔案,而它的函式原型如下:

unlink("要刪除的檔案存放路徑與要刪除的檔案名稱");


那為什麼要放在

$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判斷式之內,避免程式發生錯誤。

  另外下面延伸閱讀推薦的那二本書也都有提到相同的內容,而且寫的更詳細,推薦給有需要的朋友。

延伸閱讀:

挑戰Dreamweaver CS4互動網站百寶箱:使用PHP

精通Dreamweaver CS4與PHP & MySQL實例整合應用經典


arrow
arrow
    全站熱搜

    優購雲端科技 發表在 痞客邦 留言(0) 人氣()