Я пытаюсь проверить содержимое загруженного файла .zip и затем сохранить его в нужном каталоге.
Мой вопрос: могу ли я переименовать, извлечь файлы внутри tmp/
каталог? Будут ли файлы удалены автоматически?
Я просто хотел бы знать, что происходит с файлом, который я сам создал в tmp/
реж.
Текущий процесс:
tmp_name
в ...['tmp_name'].zip (if not exists)
...['tmp_name']
файл....['tmp_name']
, файл уже удален.zip
файлКак ты можешь читать Вот:
В большинстве систем этот каталог очищается при загрузке или при завершении работы локальной системой.
Но, как говорится в документации, на уровне Linux, это зависит от распределения. Большинство серверов перезагружаются не часто, поэтому /tmp
папка может стать беспорядком, который использует некоторое (значительное количество) дисковое пространство. Однако большинство систем Linux позволяют устанавливать TMPTIME
переменная: количество дней, в течение которых файл может выжить /tmp
, Таким образом, установив переменную в 1
файлы старше одного дня удаляются автоматически (хотя, вероятно, не спустя одну секунду после того, как им исполнился один день). Увидеть этот ответ Больше подробностей.
Короткий ответ: файлы являются частью файловой системы. Они обычно не удаляются автоматически, только при перезагрузке или когда они достаточно взрослые. Это необходимо для того, чтобы при выполнении нескольких действий с файлами они не исчезали в середине. Хотя один, конечно, никогда не знает полностью.
Таким образом, вы должны убедиться, что вы даете своим файлам разные имена: если два процесса происходят одновременно, они не должны взаимодействовать. Например, используйте случайное число, чтобы первый файл был назван zip151323.zip
а второй zip4745443233.zip
,
Это будет зависеть от вашей операционной системы и конфигурации PHP. PHP не управляет файловой системой, и этот каталог может быть добавлен любым приложением.
От http://php.net/manual/en/ini.core.php#ini.upload-tmp-dir :
upload_tmp_dir строка Временный каталог, используемый для хранения файлов
при загрузке файла. Должен быть доступен для записи любым пользователем PHP
работает как. Если не указано, PHP будет использовать систему по умолчанию.Если указанный здесь каталог недоступен для записи, PHP возвращается к
системный временный каталог по умолчанию. Если open_basedir включен, то
Системный каталог по умолчанию должен быть разрешен для успешной загрузки.
Короче говоря, это зависит от вашей операционной системы и конфигурации, так как это всего лишь указатель на папку где-то в вашей системе — PHP не справится с этим за вас. Многие удаляют файлы только при запуске, поэтому вам, вероятно, следует соблюдать осторожность, чтобы очистить их после разархивирования (или использовать что-либо для очистки любого мусора).
Если вы создаете библиотеку или модуль для общего повторного использования, вам следует указать в документации требования к используемой вами временной папке — разумеется, если вы используете ее для чего-либо, кроме быстрой обработки. (Т. Е. Вам, вероятно, придется просто написать код и забыть об этом, но если вы хотите остаться в безопасности …).