Требуется добавить возможность прикреплять файлы к приватным сообщениям. Файлы естественно может видеть только юзер которому предназначено сообщение. Очевидным решением является хранить файлы где то outside web accessible directory и после проверки php скриптом юзера в текущей сессии выдавать либо файл либо access denied. Что то типа:
<?php
/* ....... */
if (isset($_SESSION['user'])) {
/* check user */
} else {
exit("Access Denied!");
}
$fc = file_get_contents($file);
header("Content-Type: {$fileContentType});
echo $fc;
Встаёт вопрос оптимизации производительности. Понятно что читать большой файл в PHP с целью его последующего вывода не оптимально. Что можете предложить? Может существуют какие то готовые решения для этого.
Так же вопрос. Если информацию по всем файлам хранить в MySQL в таблице `files` а сам файл соответственно в <some_dir>/`files.id` где `files.id` - primary key из files то при большом кол-ве файлов не будет ли притормаживать. Есть ли смысл раскладывать файлы по сабкаталогам. И какую FS лучше выбрать для раздела с этими файлами что бы оптимизировать?