2009年7月1日

【教學】 用DW製作PHP版刪除檔案教學



如何將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實例整合應用經典

如果覺得這篇文章對您有所幫助,在觀看完文章之餘,希望能點選下方方廣告,當作是對YOGO的支持,讓YOGO更有寫作的動力。




沒有留言:

聖誕跑趴歡樂降★韓版假兩件針織連衣裙$890,新款顯瘦棒球服連帽風衣外套下殺$510,冬新款歐美棉襖棉服連帽短款外套限量↘$530,秋冬新款韓版大碼毛領氣質毛料外套↘$680,快上左耳貓網路購物

您好!如圖太小看不清楚,請 點選此處 看詳細內容 左耳貓蝦皮賣場 https://shopee.tw/hrf5168 左耳貓 露天賣場 http://class.ruten.com.tw/user/index00.php?s=starbox 左耳貓粉...