Есть большая вероятность, что Apache сможет прочитать каталог tmp, но такой подход пахнет плохо.Мой подход заключается в том, чтобы PHP прочитал файл и отправил его пользователю.По сути, вы отправляете соответствующие заголовки HTTP, чтобы указать, какой тип контента вы отправляете и какое имя использовать для файла, а затем просто выплевываете файл с помощью echo (например).
Itпохоже, что есть хорошее обсуждение этого в другом вопросе:
HTTP-заголовки для загрузки файлов
Дополнительным преимуществом этого подхода является то, что он оставляет вас в полном контроле, потому чтомежду пользователем и файлом есть PHP.Это означает, что вы можете добавить дополнительные меры безопасности (например, контроль времени суток), извлечь файл из разных мест, чтобы распределить использование полосы пропускания и т. Д.
[дополнительный материал]
Извините, что не обратились напрямую к вашему вопросу.Если вы используете PHP для обслуживания файлов, они не обязательно должны находиться в веб-корне Apache, именно там, где Apache / PHP имеет доступ для чтения файловой системы.Таким образом, вы действительно можете просто сохранить их в / tmp и позволить ОС очистить их для вас.Возможно, вы захотите настроить частоту этих очисток, чтобы поддерживать громкость на желаемом уровне.
Если вы хотите обеспечить надежный отказ в доступе после определенного периода времени или определенного числазагрузок, вы можете сохранить информацию об отслеживании в вашей базе данных (например, флаг пользователя, указывающий, что он загрузил файл), а затем проверить его с помощью сценария загрузки и, возможно, запретить загрузку.Это эффективно отделяет безопасность доступа от частоты очистки, две вещи, которые вы, возможно, захотите настроить независимо.
Надеюсь, это более полезно ...