PHP Доступ к файлу, заблокированному для редактирования - ошибка «Отказано в доступе» - PullRequest
2 голосов
/ 16 декабря 2011

Я делаю некоторый синтаксический анализ csv, и если я отменяю синтаксический анализ (переходя на другую страницу или обновляя) до вызова функции fclose (), я получаю следующую ошибку, когда возвращаюсь и запускаю программу еще раз:

Warning: unlink(spreadsheet.csv) [function.unlink]: Permission denied

Когда я пытаюсь открыть файл spreadsheet.csv в Excel, я получаю сообщение об ошибке «Файл используется», в котором говорится, что «spreadsheet.csv заблокирован для редактирования« другим пользователем ».» Я понимаю, что мой php-сервер в настоящее время застрял в состоянии попытки доступа к файлу. Есть ли способ, которым я могу использовать php, чтобы проверить, заблокирован ли файл для редактирования, и разблокировать его?

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

Вы можете попытаться разблокировать файл с помощью php следующим образом:

$rFile = fopen("path/file.txt", "r+");
flock($rFile, LOCK_UN); 
fclose($rFile);

И лучший способ получить доступ для чтения и записи к файлу таков:

$iOldumask = umask(0);
chmod("path/file.txt", 0777);
umask($iOldumask);
0 голосов
/ 16 декабря 2011

Взгляните на flock () .

Я использую это как:

if (!$file->flock(LOCK_EX)) {
    throw new Exception('Unable to obtain lock on file');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...