我如何将图像上传到共享主机laravel 5中的公用文件夹

时间:2019-02-03 20:53:29

标签: laravel laravel-5 eloquent laravel-5.5

我将网站从本地主机移到共享主机,这很好,但是当我将文件直接存储到public_html上载时我需要: public_html / storage /  我尝试使用类似的东西:

symlink('/home/abdoweb/bmcelarave/storage/app/public', '/bmce/public_html/storage')

问题仍然存在。

我的控制器:

    public function addcategory(Request $request){

    $title = $request->input('category_name');
    $image = $request->file('category-image');
        $name = $image->getClientOriginalName();
        $image->move(storage_path().'/app/public/category',$name);
        $data[] = $name;

    $query=  DB::table('category')->insert(
        [
            'title' => $title,
            'image' => $name,
            "created_at" => Carbon::now()
        ]);
        if($query){
            return redirect('categories');
        }
}

我的文件夹:

home / abdoweb / {bmcelaravel} <=我的公用文件夹

laravel核心:

home / {bmce} <=核心幼虫

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用存储驱动程序:

在config / filesystems.php内部:

'disks' => [
   'public' => [
       'driver' => 'local',
       'root'   => public_path() . '/uploads',
       'url' => env('APP_URL').'/public',
       'visibility' => 'public',
    ]
]

//Now you can move  the file to storage like : 

Storage::disk('public')->putFile('category', $request->file('category-image'));

答案 1 :(得分:0)

首先,对于这些东西的推荐位置是留在公共路径上,而不要创建新路径,除非有实际原因。您是否真的检查过符号链接已创建?

Laravel有自己的命令,可以创建从storage/app/publicpublic/storage的符号链接(存储文件夹将在之后生成):

php artisan storage:link

但是,如果要创建默认符号链接,则应该像已经创建的那样为自己创建一个。

这是符号链接模式:

ln -s target source(填写目标和源路径)

因此,如果您实际上从请求中获取了正确的文件,则此代码应该有效:

Storage::putFile($name, $request->file('category-image'));

有关更多详细信息,请查看文件系统documentation