2012-05-29 3 views
1

Для клиента я создаю многоэтапную форму в PHP5. На одной из первых страниц есть несколько загрузок файлов. Загруженные файлы должны храниться во временном каталоге, пока пользователь не заполнит форму. В настоящий момент все данные формы будут временно сохранены в сеансе с уникальным номером. Я думал о хранении файлов в сеансе, но это, вероятно, вызовет ошибки из-за ошибки максимального размера.PHP: хранить файл до окончания сеанса

Другой метод, о котором я думал, заключался в том, чтобы хранить файлы во временном каталоге (tmpname()). Но проблема этого метода заключается в том, что временная папка может быть очищена os в любое время. Когда это происходит, файлы теряются.

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

Что было бы лучшим способом сделать это? То есть есть встроенные функции и т. д.

ответ

1

Ну, почему бы не сохранить имена tempnam(), сгенерированные в сеансе вместе с именем предполагаемого файла? Как

$_SESSION['temp_files'] = array($truename => $tempname); 

В сеансе_close вы вручную отсоединяете файлы и делаете это. Чтобы предотвратить временные файлы из сеансов с истекшим сроком действия в вашем временном каталоге, у вас может быть задание файлов с определенным возрастом из каталога.

Я ничего не забыл?

Смежные вопросы