簡體   English   中英

PHP - 檢查 CSV 文件是否被鎖定以供其他用戶修改

[英]PHP - Check if a CSV file is locked for modification by another user

我使用 WinSCP 從遠程 FTP 連續檢索 CSV 文件

我創建了一個 PHP 腳本,它每 10 分鍾掃描一次文件夾,以便使用LOAD DATA INFILE將這些 CSV 文件導入到數據庫中

問題是我的 PHP 腳本執行LOAD DATA INFILE即使文件仍在被 WinSCP 下載(有些文件是 1 到 2gb,所以有時需要很長時間)

所以我想在LOAD DATA INFILE之前添加一個條件來檢查 CSV 文件是否被鎖定以供其他用戶修改(這是 Excel 在我嘗試手動打開它時告訴我的)

我嘗試了幾件事:

is_file($file_path) 
boolean true
is_writable($file_path)
boolean true
is_readable($file_path)
boolean true
file_exists($file_path)
boolean true

當我使用 fopen 時,它給了我一個false回報

fopen($file_path, "r+")
boolean false

但是我有一個例外,我不知道在每個LOAD DATA INFILE之前打開 2gb 文件是否會降低腳本的性能

Warning: fopen(***\booking.csv): failed to open stream: Resource temporarily unavailable in ***\load.php on line 62

我建議您將文件下載到另一個文件夾,只有在下載完成后才將它們移動到受監控的文件夾。

或者為什么不在下載完成后顯式觸發您的 PHP 腳本?


對於類似的問題,另請參閱如何檢測正在通過 FTP 上傳的文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM