Ao fazer o upload de um arquivo por um formulário HTML para um script PHP, o arquivo carregado permanecerá em upload_tmp_dir, mesmo quando o pedido terminar e esse arquivo não tiver sido removido explicitamente pelo código PHP.
Comportamento esperado: Arquivos temporários não usados, não movidos ou excluídos de um upload de arquivo são excluídos pelo PHP quando a solicitação é encerrada. Este também é o comportamento que o php.net descreve para uploads de arquivos: "O arquivo será deletado do diretório temporário no final da requisição se não tiver sido movido ou renomeado.", Veja: link
Isto é, aconteceu sob o capô:
O arquivo é criado em upload_tmp_dir. O arquivo não é tocado pelo código PHP. O pedido termina. O PHP tenta excluir o arquivo temporário, mas o acesso é negado.
Analisamos isso com procmon. O que você pode ver é que o processo do php-cgi.exe não parece representar a solicitação de exclusão, como em move_uploaded_file ().
Solução alternativa: se adicionarmos os direitos MODIFY ao grupo IIS_IUSRS no arquivo uploaded_tmp_dir, o arquivo será excluído depois que a solicitação terminar conforme o esperado.
Ambiente: PHP 5.3 / 5.4 via FCGI no IIS 7.x
Reproduzido no WS2012, WS2008 R2.
Estou discutindo isso no bugtracker do PHP, mas eles não acreditam em mim: link
Eu preciso de algum apoio deste tópico. Alguém pode reproduzir isso? O que estou fazendo errado.