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

时间:2016-04-26 17:22:10

标签: php laravel-5 filesystems storage

嗯,实际上我想在我选择列表中的某个客户端并且他想要使用dropzone上传图像时直接进行操作,所以如果他没有目录那么make或者如果存在将图像保存在自己的目录中,那就很好了现在我将图像上传到一个目录,但我想为每个用户创建一个,这是我的存储方法,我真的很新就这件事抱歉。

非常感谢你的帮助。

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();
}

1 个答案:

答案 0 :(得分:0)

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

while (GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

如果由于某种原因无法创建目录,您可能希望处理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; } 可能抛出的任何异常。