Обработка загрузки и хранения файлов в веб-приложении

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

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

Я попытался оставить материал в папке tmp / и получил временное имя от apache, но когда я выполняю загрузку, мне нужно немедленно переместить файл, иначе файл не может быть найден на более позднем этапе, ссылаясь на временное имя файла.

Причина, по которой я оставляю его в / tmp /, заключается в том, что я хочу настроить задание cron и удалить файлы в этой папке, чтобы освободить место на сервере.

Правильно ли я поступаю? или есть стандартный отраслевой подход, используемый hotmail, google и т. д.?


person Dan    schedule 03.11.2009    source источник


Ответы (3)


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

Вы можете загрузить в созданную вами папку под названием temp. Когда загрузка будет завершена, переместите временный файл из папки PHP tmp во временную папку.

Затем, когда отправка завершена, вы перемещаете файл в соответствующие папки.

Сделайте задание cron, которое работает в фоновом режиме для удаления старых файлов в этой папке.

Не забудьте предоставить разрешения PHP, Apache и заданию cron для доступа к папке.

Не полагайтесь на промышленные стандарты - к тому же Microsoft и Google не используют PHP. (может быть, Google, но точно не Microsoft).

person mauris    schedule 03.11.2009

Почему бы просто не переместить его из папки tmp / в вашу собственную временную промежуточную папку немедленно, а затем сохранить ссылку на него в БД и иметь задание cron, которое периодически сканирует БД на предмет `` промежуточных '' файлов с меткой времени больше X часов в прошлом и удаляет их?

person Amber    schedule 03.11.2009

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

person Ahmed Memon    schedule 03.11.2009