我試圖使用PHP unlink()
函數刪除文件夾中的特定文檔。該特定文件夾已被分配給IIS用戶的完整權限。如何使用Unlink()函數
代碼:
$Path = './doc/stuffs/sample.docx';
if (unlink($Path)) {
echo "success";
} else {
echo "fail";
}
保持它的回報失敗。 sample.docx確實駐留在該特定路徑上。好心提醒。
我試圖使用PHP unlink()
函數刪除文件夾中的特定文檔。該特定文件夾已被分配給IIS用戶的完整權限。如何使用Unlink()函數
代碼:
$Path = './doc/stuffs/sample.docx';
if (unlink($Path)) {
echo "success";
} else {
echo "fail";
}
保持它的回報失敗。 sample.docx確實駐留在該特定路徑上。好心提醒。
我發現這個信息in the comments of the function unlink()
在Windows系統和Apache,拒絕訪問文件是平常 錯誤斷開鏈接文件。要刪除文件,您必須更改文件的所有者。 一個例子:
chown($tempDirectory . '/' . $fileName, 666); //Insert an Invalid UserId to set to Nobody Owern; 666 is my standard for "Nobody"
unlink($tempDirectory . '/' . $fileName);
因此,嘗試這樣的事:
$path = './doc/stuffs/sample.docx';
chown($path, 666);
if (unlink($path)) {
echo 'success';
} else {
echo 'fail';
}
編輯1
嘗試的路徑,使用此:
$path = '.'
. DIRECTORY_SEPARATOR . 'doc'
. DIRECTORY_SEPARATOR . 'stuffs'
. DIRECTORY_SEPARATOR . 'sample.docx';
試試這個:
$Path = './doc/stuffs/sample.docx';
if (file_exists($Path)){
if (unlink($Path)) {
echo "success";
} else {
echo "fail";
}
} else {
echo "file does not exist";
}
如果你得到的文件不存在,你走錯了路。如果不是,它可能是一個權限問題。
define("BASE_URL", DIRECTORY_SEPARATOR . "book" . DIRECTORY_SEPARATOR);
define("ROOT_PATH", $_SERVER['DOCUMENT_ROOT'] . BASE_URL);
$path = "doc/stuffs/sample.docx";
if (unlink(ROOT_PATH . $Path)) {
echo "success";
} else {
echo "fail";
}
// http://localhost/book/doc/stuffs/sample.docx
// C:/xampp/htdocs\book\doc/stuffs/sample.docx
你檢查,如果你有權限刪除的文件?另外,嘗試使用絕對路徑,如下所示:'$ Path ='/ doc/stuffs/sample.docx'' – 2012-07-13 03:05:17
yes。我可以下載那個特定的文件,這樣我的路徑就可以工作了。 – JLearner 2012-07-13 03:07:28
如果你確定權限是正確的,我猜測路徑是錯誤的,就像馬西奧所說的那樣。你有沒有試過用'file_exists()'檢查它? – SilverSnake 2012-07-13 03:08:03