13

PHP unlink()関数を使用して、フォルダー内の特定のドキュメントを削除しようとしています。その特定のフォルダには、IIS ユーザーへの完全な権限が既に割り当てられています。

コード:

$Path = './doc/stuffs/sample.docx';
if (unlink($Path)) {    
    echo "success";
} else {
    echo "fail";    
}

リターン失敗し続けます。sample.docx はその特定のパスにあります。親切なアドバイス。

4

5 に答える 5

13

関数 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';
于 2012-07-13T03:21:24.247 に答える
9

これを試して:

$Path = './doc/stuffs/sample.docx';
if (file_exists($Path)){
    if (unlink($Path)) {   
        echo "success";
    } else {
        echo "fail";    
    }   
} else {
    echo "file does not exist";
}

ファイルが存在しない場合は、パスが間違っています。そうでない場合は、権限の問題である可能性があります。

于 2012-07-13T03:07:37.337 に答える
2

これは、権限の問題が完了したら機能するはずです。また、試してみてください

ini_set('display_errors', 'On');  

それはあなたに何が悪いのかを教えてくれます

于 2012-07-13T04:19:50.363 に答える
0

対象のファイルへの完全なファイル パスが必要です。例: C:\doc\stuff\sample.docx。__DIR__またはを使用__FILE__して相対的なファイル位置を取得して、目的のファイルに移動できるようにしてください。

于 2012-07-13T03:08:41.017 に答える