Parece que o PHP não está acionando um evento create, mas possivelmente um evento Changed. Experimente alguns dos outros eventos de aqui
Eu uso um script do powershell ( baseado nisso ) para monitorar uma pasta e saber quando um arquivo é criado.
Meu script é o seguinte:
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "H:\draw\"
$watcher.Filter = "*.nrrd"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action =
{
$path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
if ($path -like '*\tumor\*')
{
Write-Host "The file '$path' was $changeType at '$(Get-Date)'" -fore green
}
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 5}
Quando eu crio o arquivo "à mão", a ação é bem acionada (a frase verde é exibida).
Mas o arquivo não é criado manualmente, mas sim por um script PHP. E quando o arquivo é criado pelo script PHP, a ação não é acionada.
Mas quando eu copio / passo o arquivo criado pelo script PHP, ele é acionado, então não é um problema com o arquivo.
É possível fazê-lo funcionar com a criação em PHP?
NB: O arquivo é criado dessa maneira
$file = fopen($path, 'wb');
fwrite($file, $my_data);
fclose($file);
Depois de mais pesquisas, descubro que o problema não é com o PHP, mas quando outro usuário / sessão (aquele que lançou o script powershell) está criando o arquivo.
Parece que o PHP não está acionando um evento create, mas possivelmente um evento Changed. Experimente alguns dos outros eventos de aqui
Tags monitoring php powershell