Não, não tem essa função incorporada.
Existem soluções para isso.
Provavelmente, o melhor é dizer ao programa de upload para fazer o upload com um nome diferente, por exemplo, file-whatever.txt.incomplete
e assim que o upload for concluído, renomeie-o como o nome normal.
A vantagem é:
A renomeação é rápida (já que o arquivo está no mesmo sistema de arquivos).
Se um upload não terminar corretamente, ele não será renomeado.
Desvantagem é claro, você precisa de mudanças tanto no processo de upload quanto no cronjob do PHP (para ignorar *.incomplete
files).
A outra solução é enviá-lo para uma pasta diferente, como você sugeriu, e assisti-lo com algo como incron .
Com isso, você pode assistir a uma pasta e mover os arquivos concluídos para uma pasta diferente.
Desvantagem: se um upload falhar na metade, ele ainda será movido e possivelmente processado.