我有一個使用我的控制之外的流媒體服務器流式傳輸大型視頻文件,有時我想刪除的視頻文件。當文件碰巧被使用流式服務器的人查看時,PHP錯誤帶有「權限被拒絕」。在PHP中,檢查文件是否可以被刪除
我想嘗試刪除該文件可以刪除或不前檢查。我不想真的嘗試刪除文件,看看是否失敗,我想事先檢查。
這是我到目前爲止的代碼:
$file = "video.flv";
$file2 = "newvideoname.flv";
clearstatcache();
if (is_writeable($file)) {
echo "is writeable";
}
else {
echo "is NOT writeable";
}
echo "\n";
$fh = fopen($file, 'a+');
if (!flock($fh, LOCK_EX | LOCK_NB)) {
// file locked, do something else
echo "is locked";
}
else {
echo "not locked!";
}
fclose($fh);
echo "\n";
if (touch($file)) {
echo "modification time has been changed to present time";
}
else {
echo "Sorry, could not change modification time";
}
echo "\n";
rename($file, $file2);
,當我在執行碼流video.flv我得到的輸出:
is writeable
not locked!
modification time has been changed to present time
PHP Warning: rename(video.flv,newvideoname.flv): Permission denied in ...
有時候我:
is writeable
PHP Warning: fopen(video.flv): failed to open stream: Permission denied ...
PHP Warning: flock() expects parameter 1 to be resource, boolean given
is locked
PHP Warning: fclose(): supplied argument is not a valid stream resource
PHP Warning: touch(): Utime failed: Permission denied
Sorry, could not change modification time
PHP Warning: rename(video.flv,newvideoname.flv): Permission denied ...
所以有時文件不能被PHP鎖定,也不能被PHP觸摸(),當然重命名也不起作用,但如此一次PHP說「一切都好」,直到重命名命令。重命名命令有從來沒有工作隨機機會。
我應該怎麼做與文件?
那麼文件權限呢? –
@KA_lin不是問題,當視頻沒有被流式傳輸時,重命名命令完美地起作用 – Tominator
所以問題是什麼? –