在服务器上上传文件,Laravel

Upload files on server, Laravel

我的 laravel 项目有问题。我做了一个系统,客户必须上传带有图片的产品。但是当我把项目上传到在线主机上时,图片上传不起作用,我找不到问题所在。

广告:我有 public_html 文件夹中的 Laravel 文件夹,我没有使用主文件夹 (public_html),但我使用的是另一个域服务器,所以你看到的路径ta的配置没有“public_html”

代码:

控制器

public function store(Request $request)
    {
        $newProduct = new App\Product;

        $newProduct -> name = $request -> name;
        $newProduct -> description = $request -> description;
        $newProduct -> price = $request -> price;

        if ( $request -> hasFile('photo') ) {
            $file = $request -> file("photo");
            $fileUpload = Storage::disk('public') -> put('img/products', $file);
            $newProduct -> photo = $fileUpload;
        }

        $newProduct -> save();

        return back() -> with('status', 'Ok.');
    }

文件系统:

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

和配置路径

public function register()
    {
        $this->app->bind('path.public',function(){
            return'/home1/client/domain.com/menu';
        });
    }

重要提示:当我保存寄存器时,它起作用了,我可以在数据库中看到文件名,但不能将文件保存在文件夹中。

谢谢,但是 putFile 没用。

我终于可以修复错误了。我不知道为什么要创建一个文件夹并将文件保存在 Laravel 文件夹中。所以,我用路由手动替换了“public_path”,只是一个字符串。现在它保存在正确的文件夹中。