Подтвердить что ты не робот

Php:: сколько времени осталось до tmp файлов?

Я работаю над загрузкой script.

Если пользователь загружает файл, и он уже существует, я хочу предупредить пользователя (все это через ajax) и дать им возможность заменить его или отменить.

Вместо перемещения файла, Мне было любопытно, могу ли я просто оставить файл в tmp и передать путь к этому файлу в ответе ajax.

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

Для этого, однако, мне нужно знать, как долго файл остается в php tmp dir

4b9b3361

Ответ 1

Файлы, загруженные через POST, удаляются сразу после завершения php script.

Согласно php.net: "Файл будет удален из временного каталога в конце запроса, если он не был удален или переименован".

Ответ 2

Для загруженных файлов состояния руководства:

Файл будет удален из временный каталог в конце запросить, если он не был отодвинут или переименован.

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

В более общем плане, поскольку заголовок вопроса может означать, что временные папки остаются очищенными системой. Это верно при использовании таких функций, как tempnam или tmpfile или просто при записи во временный каталог (см. sys_get_temp_dir).

В Ubuntu это делается при каждой перезагрузке системы или в промежутке времени, как определено в /etc/default/rcS.

В некоторых дистрибутивах на основе Red Hat это делается с помощью утилиты tmpwatch из cronjob. В других разделах раздел /tmp монтируется с использованием файловой системы tmpfs, которая похожа на RAM-диск (поэтому очищается при выключении компьютера).

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

Ответ 3

В PHP должны быть установлены три переменных, чтобы убедиться, что сборка мусора в каталоге /tmp выполняется правильно, и они:

session.gc_maxlifetime = 21600
session.gc_probability = 1
session.gc_divisor = 100

Установите session.gc_maxlifetime как количество секунд, в течение которых каждый файл tmp должен оставаться последним до его удаления. Если вы входите в админ в OpenCart, это будет количество секунд, пока вы не будете автоматически выведены из системы. Например, чтобы установить полчаса, вы сделали бы 60 секунд раз 30 минут, что было бы значением 1800 секунд.

Другие две переменные связаны с тем, когда будет запущен сборщик мусора, и важно, чтобы они были установлены выше, если у вас возникли проблемы с этим.

Подробнее здесь: https://www.antropy.co.uk/blog/opencart-php-session-tmp-files-filling-up/