Я написал JS для загрузки действительно больших видео в виде фрагментов и PHP-скрипта для сборки фрагментов на сервере. Файловый процесс работает, за исключением того, что я не могу воспроизвести файл, пока не перезапущу все службы с панели задач PHP. После этого файл проигрывается нормально. Если я пытаюсь переименовать файл в Windows Explorer, я получаю следующую ошибку:
Действие не может быть завершено, потому что файл открыт в httpd.exe
Я подозреваю, что это может быть связано с тем, чтобы никогда не звонить move_uploaded_File()
, но вызов этой процедуры не будет работать с собранным файлом.
Нашел это сам. Ничего общего с не вызванным move_uploaded_File. Произошла синтаксическая ошибка, которая остановила скрипт до закрытия файла. Поскольку сервер был настроен так, чтобы не отображать ошибки, не было очевидно, что произошла ошибка до закрытия файла.
Временные файлы закрываются (явно) после добавления к большому файлу, который собирается. Похоже, что это завершает часть того, что делает move_uploaded_file, то есть избавляется от временного файла после его использования. Окончание сценария, вероятно, делает это тоже.
Других решений пока нет …