没有SSH的共享主机上的Laravel 5:如何将上传的文件直接存储到public_html文件夹?

问题描述 投票:1回答:3

我的结构是这样的:

/laravelfiles
/public_html
--/demo
----/index.php (and other files inside public folder)

我已将index.php更改为access / laravelfiles,一切正常。

我的配置文件系统:

'local' => [
    'driver' => 'local',
    'root' => public_path(),
],

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

当我尝试存储文件时:

Storage::disk('public')->put($folder.'/'.$file_name, $file_data);

它存储在laravelfiles / public文件夹中。因为它是分开的,所以文件是不可访问的。

我想要的是将文件存储在/ public_html / demo文件夹(index.php所在的文件夹)中。

我怎么做?

php laravel cpanel
3个回答
0
投票

尝试添加config / filesystems.php

'custom' => [
        'driver' => 'custom',
        'root'   => '../path/to/your/new/storage/folder',
    ],

然后

Storage::disk('custom')->put($folder.'/'.$file_name, $file_data);

0
投票

您必须通过在AppServiceProvider.php中添加以下代码行来绑定应用程序中的公共路径并将其更改为public_html

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {    
          // uncomment this after deployment to actual server
        $this->app->bind('path.public', function() {
            return base_path('public_html');
        });

    }

}

0
投票

尝试使用第三方存储,如Amazon S3或Ms Azure。他们也有基本/免费的计划。

© www.soinside.com 2019 - 2024. All rights reserved.