@xcoolsite

Как сделать отдельную папку для пользователя?

Как сделать отдельную папку для каждого пользователя, где будет хранится его личные файлы, документы. Никто не имеет туда доступа кроме этого пользователи, также не видит и не знает физического пути к этой папке. Например, регистрируется пользователь и у него тут же доступна личная папка куда он может загружать что-нибудь. Это типа как обычный файловый менеджер. Как такое можно сделать? У меня лишь мысль определять папку по id пользователя. В общем в таблице users у нас список всех пользователей и их данные и там же id естественно. В сессию при авторизации я записывают это id и потом по нему определяю какая папка какого пользователя:

files/1/
files/2/
files/3/


Насколько это хорошая идея и есть ли еще варианты?
  • Вопрос задан
  • 530 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dimash07
mkdir('files/'.$user_id);
Ответ написан
Комментировать
Таблица files [id, user_id, path, name, size, mime, ...]
Файлы переименовываются во что угодно и сохраняются в /private/storage/files/user_id/XXXXXXX.ext
В базу сохраняем оригинальное имя, размер, тип и физический путь.
Роутинг /cloud с доступом только для авторизованных

<?php namespace App\Http\Controllers;

class CloudController extends Controller {

	/**
	 * Список файлов пользователя
	 *
	 * @return \Illuminate\View\View
	 */
	public function cloud() {

		$files = \Auth::user()->files()->paginate(20);

		return view('template', compact('files'));
	}
}


Файлы можно вынести вне DOCUMENT_ROOT.
Наверное как-то бы так делал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы