В настоящее время я использую загрузку файлов php и ajax для разработки веб-приложения. в веб-приложении включает в себя получение файлов, загруженных пользователем, например почтовый клиент, фотогалерею. Это сценарий, в котором я застрял.
Когда пользователь загружает некоторые файлы, но закрывает браузер без отправки, я хочу удалить эти файлы и переместить только соответствующие файлы.
Я попытался оставить материал в папке tmp / и получил временное имя от apache, но когда я выполняю загрузку, мне нужно немедленно переместить файл, иначе файл не может быть найден на более позднем этапе, ссылаясь на временное имя файла.
Причина, по которой я оставляю его в / tmp /, заключается в том, что я хочу настроить задание cron и удалить файлы в этой папке, чтобы освободить место на сервере.
Правильно ли я поступаю? или есть стандартный отраслевой подход, используемый hotmail, google и т. д.?
Ответ 1 · рейтинг 1 · mauris
Вам понадобится еще одна временная папка, которой вы можете управлять самостоятельно.
Вы можете загрузить в созданную вами папку под названием temp. Когда загрузка будет завершена, переместите временный файл из папки PHP tmp во временную папку.
Затем, когда отправка завершена, вы перемещаете файл в соответствующие папки.
Сделайте задание cron, которое работает в фоновом режиме для удаления старых файлов в этой папке.
Не забудьте предоставить разрешения PHP, Apache и заданию cron для доступа к папке.
Не полагайтесь на промышленные стандарты - к тому же Microsoft и Google не используют PHP. (может быть, Google, но точно не Microsoft).
Ответ 3 · Ahmed Memon
Я не знаю о больших мальчиках, но я думаю, вы можете создать таблицу базы данных, которая будет содержать имена временных файлов, плюсы этого подхода в том, что вы можете удалить запись из таблицы временных файлов, даже если браузер не закрыт в в середине и дополнительно настроить задание cron для удаления файлов, найденных в таблице временных файлов.