2016-12-29 49 views
1

我有一些存儲業務正在我的控制器完成的,這是我的本地機器上工作的代碼:爲什麼我的文件系統路徑在本地計算機和託管在VPS上有所不同?

Storage::copy('public/filename.pdf', 'public/sub_directory/filename_'.$var.'.pdf'); 
Storage::delete('public/filename.pdf'); 

有了這個代碼,我能夠成功地複製文件中laravel_root/storage/app/public/,然後複製和重命名將文件複製到laravel_root/storage/app/public/subdirectory/public/中的文件在複製操作後被刪除。這適用於我的本地機器。

當我將代碼推送到臨時服務器時,上面的路徑不起作用,我得到了ERROR: No such file or directory

我從本地機器上的合作,以改變路徑得到這個工作:

Storage::copy('filename.pdf', 'subdirectory/filename_'.$var.'.pdf'); 
Storage::delete('job_card.pdf'); 

我不得不從操作刪除了public/

我的問題是 - 爲什麼在本地機器和推送到服務器時有所不同?

我在本地計算機上的macOS上運行,在臨時服務器上運行ubuntu 16。我沒有更改任何配置文件。

回答

0

我會說這與你的文件系統配置有關。

請在config/filesystems.php中查找磁盤的根目錄。

'disks' => [ 

    'local' => [ 
     'driver' => 'local', 
     'root' => storage_path('app'), 
    ], 

    'public' => [ 
     'driver' => 'local', 
     'root' => storage_path('app/public'), 
     'visibility' => 'public', 
    ], 

    's3' => [ 
     'driver' => 's3', 
     'key' => 'your-key', 
     'secret' => 'your-secret', 
     'region' => 'your-region', 
     'bucket' => 'your-bucket', 
    ], 

], 

地方是storage_path('app')和公衆storage_path('app/public')

+0

謝謝!在我的本地計算機中將'config/filesystem.php'設置爲'default'=>'local'',在我的登臺服務器中設置'default'=>'public'' –

+0

沒問題。您也可以指定要使用的驅動程序。例如。 '''Storage :: disk('local') - > copy('public/filename.pdf','public/sub_directory/filename _'。$ var。'。pdf');''。 [更多信息](https://laravel.com/docs/5.3/filesystem) – CUGreen

相關問題