2011-12-16 10 views
2

私はいくつかのcsv解析を行っています.fclose()関数が呼び出される前に解析を取り消し(別のページにナビゲートしたり、私は戻って、もう一度プログラムを起動したときに、私は以下のエラーが表示されます。PHP編集のためにロックされたファイルへのアクセス - パーミッションが拒否されたエラー

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

私はExcelでspreadsheet.csvファイルを開こうとすると、私は「スプレッドシートを言って、「使用中のファイル」エラーが発生します。 csvは、「別のユーザ」によって編集のためにロックされています。「私は自分のPHPサーバが現在ファイルにアクセスしようとしている状態になっていることを理解しています。ファイルが編集のためにロックされているかどうかを確認するためにPHPを使用する方法はありますか?

+0

http://php.net/manual/en/function.flock.php –

答えて

0

あなたはこのようなPHPでファイルのロックを解除しようとすることができます:

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

をして、ファイルへの読み書きアクセスを取得するための最良の方法はこれです:

$iOldumask = umask(0); 
chmod("path/file.txt", 0777); 
umask($iOldumask); 
+0

良いアドバイスが、私の問題を理解しました。私のWebページは非常に長いPHPスクリプトからデータを返すためにajax呼び出しを使用しているので、早くページを終了しても、そのPHPスクリプトはまだ実行されています。バックグラウンドで実行中のAjaxリクエストがある場合、前のAjaxリクエストを実行しようとするのを止めるようにサーバーに指示する方法はありますか? – user954912

+0

はい、こちら[見てください](http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery) – noob

0

flock()をご覧ください。

私はそれが好きで使用

if (!$file->flock(LOCK_EX)) { 
    throw new Exception('Unable to obtain lock on file'); 
} 
関連する問題