Как долго загруженные файлы остаются на сервере?

когда я использую форму для загрузки файла, это дает мне 'name' и 'tmp_name' и вы должны переместить файл из временной папки, чтобы сохранить его. Но как долго файл остается на сервере, прежде чем он будет удален? Он хранится там постоянно, пока вы вручную не очистите свои папки, или он удаляется после того, как PHP-скрипт, который он был отправлен, тоже закончен? Моя форма состоит из нескольких страниц, и я хотел просто все в конце, а не обработка деталей после завершения каждой страницы формы. Загрузка находится на Шаге 3 из 5, поэтому мне было интересно, сохранил ли я загруженную информацию о файле с шага 3, Если файл все еще будет там, когда форма будет завершена после шага 5.

3 ответов


Он удаляется после того, как PHP-скрипт, который он был отправлен, тоже закончен

таким образом, вы можете либо сделать загрузку файла последним шагом, либо реализовать свой собственный сборщик мусора для незавершенных форм.


Если PHP не умрет ужасной пламенной смертью, или вы предпримете шаги для сохранения файла, он будет автоматически убит PHP, когда скрипт выйдет. Если вам нужно сохранить его через многоступенчатую форму, вам придется переместить его в безопасное место, а затем отслеживать его (скрытые поля формы, сеанс, база данных и т. д...) и реализовать свою собственную систему очистки для обработки потерянных файлов из заброшенных форм.


это зависит от папки Загрузки tmp. Если это tmp каталог, вы не можете действительно доверять ему жить до шага 5. Если вы управляете папкой загрузки, вы можете надежно доверять ей жить до шага 5. Вы можете установить путь загрузки с помощью upload_tmp_dir