Написание небольшого приложения, которое ( среди прочего ) позволяет пользователям загружать файл ( например, изображение, .doc или текстовый файл ) в качестве части их публикации / отправки.
Наш прототип просто выгружает файл в / {app_root} / files / , но, конечно, любой может дойти до него, даже если он не вошел в систему или не использовал систему. Цель состоит в том, чтобы предоставить доступ ( просмотр доступа ) к файлам, если пользователь вошел в систему, и фактически имеет доступ к сообщению, к которому принадлежит файл.
Короче говоря, я ищу хороший способ сделать это.
Я думаю о создании папки за пределами папки / web / ( http ), а затем PHP-рендеринг ее каким-то образом использует comm () или, возможно, просто выгружает файл в базу данных? Однако я никогда не делал этого.
Хотя я подозреваю, что в конце концов смогу это понять, здесь слишком много умных людей, что я понял, что кто-то узнает о какой-то существующей библиотеке классов или функций, которая делает это уже?
Вы должны сделать следующее:
$id.$ext
и т. Д. Короче говоря, вы не хотите использовать имя пользователя в вашей системе. download.php
или что-то еще, получите идентификатор файла, проверьте, кто входит в систему, и если все проверяется, извлекайте файл, прочитайте его в браузере и отправьте соответствующие заголовки загрузки. Эти заголовки будут примерно такими:
header('Content-type: application/octet-stream'); header('Content-disposition: attachment; filename=usersuppliedname.txt'); header("Content-Length: " . filesize('../safefiles/1.txt')); header("Content-Transfer-Encoding: binary"); readfile('../safefiles/1.txt'); exit;
Затем вы можете получить больше фантазии, если хотите разрешить возобновление файлов и т. Д., Но это должно сделать это.