PHP Доступ к файлу, заблокированному для редактирования - ошибка "Отказано в доступе"
Я делаю некоторый синтаксический анализ csv, и если я отменяю синтаксический анализ (переходя на другую страницу или обновляя) до вызова функции fclose(), я получаю следующую ошибку, когда возвращаюсь и снова запускаю программу:
Warning: unlink(spreadsheet.csv) [function.unlink]: Permission denied
Когда я пытаюсь открыть файл spreadsheet.csv в Excel, я получаю сообщение об ошибке "Файл используется", в котором говорится, что "spreadsheet.csv заблокирован для редактирования другим пользователем". Я понимаю, что мой php-сервер в данный момент застрял в состояние попытки доступа к файлу. Есть ли способ, которым я могу использовать php, чтобы проверить, заблокирован ли файл для редактирования, и разблокировать его?
2 ответа
Вы можете попытаться разблокировать файл с помощью php следующим образом:
$rFile = fopen("path/file.txt", "r+");
flock($rFile, LOCK_UN);
fclose($rFile);
И лучший способ получить доступ для чтения и записи к файлу:
$iOldumask = umask(0);
chmod("path/file.txt", 0777);
umask($iOldumask);
Посмотрите на стадо ().
Я использую это как:
if (!$file->flock(LOCK_EX)) {
throw new Exception('Unable to obtain lock on file');
}