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

时间:2019-04-30 06:45:37

标签: php laravel cpanel

我的结构是这样的:

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

我已将index.php更改为访问/ 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所在的文件夹相同)内。

我该怎么做?

3 个答案:

答案 0 :(得分: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');
        });

    }

}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试添加到您的config / filesystems.php

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

然后

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