我如何在 laravel 上创建一个带有用户或客户端 ID 的目录

How i can make a directory whith ID of user or client on laravel

好吧,实际上当我在列表中选择了一些客户并且他想用 dropzone 上传图像时我想制作一个目录,所以如果他没有目录然后制作或者如果存在将图像保存在自己的目录中,很好,现在我将图像上传到一个目录中,但我想为每个用户创建一个,这是我的存储方法,我对这件事真的很陌生。抱歉。

非常感谢您的帮助。

public function store(Storage $storage, Request $request)
{
    if ($request->isXmlHttpRequest()) {

        $file = $request->file('file');

        $timestamp = $this->getFormattedTimestamp();
        $savedImgName = $this->getSavedImageName($file, $timestamp);
        $imageUploaded = $this->uploadImage($file, $savedImgName, $storage); * /

        if ($imageUploaded) {
            $data = [
                'original_path' => asset('/uploads/'.$savedImgName)
            ];

            return json_encode($data, JSON_UNESCAPED_SLASHES);
        }

        return "uploading failed";
    }
}


public function uploadImage($file, $imageFullName, $storage)
{
    $filesystem = new Filesystem;

    return $storage->disk('file')->put($imageFullName, $filesystem->get($file));
}

protected function getFormattedTimestamp()
{

    return str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString());

}

protected function getSavedImageName($file, $timestamp)
{

    return $timestamp.'-'.$file->getClientOriginalName();
}

在上传图像之前,您可以调用另一个方法来检查目录是否存在,如果不存在则创建它并 return 路径。

public function storageDirectory()
{
    $user_id = \Auth::user()->id;

    $user_dir = '/uploads/' . $user_id . '/';

    if ( ! $storage->disk('file')->exists($user_dir) ) {

        $storage->disk('file')->makeDirectory($user_dir);

    }

    return $user_dir;
}

您可能希望处理 makeDirectory 可能抛出的任何异常,以防由于某种原因无法创建目录。