2015-10-07 71 views
1

我在Heroku中使用Laravel 5.1框架和Clear DB广告将文件上传到Heroku应用程序时出现问题。
已经阅读Laravel文档,但我认为这个问题是在保存方法... 我的意思是在本地模式下正常工作:Heroku Laravel 5.1文件系统上传

1) \Storage::disk('local')->put($name, \File::get($file)); 

or 

2) 

    $name = $request->file->getClientOriginalName(); 
    Storage::put($name, 
    file_get_contents($request->file('path')->getRealPath()) 
    ); 

I use "\Storage::disk('local')" because i supose 's3' for amazon and Rackspace Cloud Storage... shall i use disk('web') or something like that? 
any suggestion? 

回答

2

在Heroku的每一个赛道是一个独立的容器与其他无共享。这意味着写在磁盘上的文件不会被其他dynos使用,并且一旦应用程序重新启动或重新部署就会丢失。

https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem

正因为如此,你不能依赖于本地文件系统(它会破坏12factor)。您需要将它们存储在Amazon S3等遥远的平台上。
请参阅https://devcenter.heroku.com/articles/s3-upload-php

+0

这就是为什么我试图以不同的方式上传,但没有人工作,大声笑 谢谢你! –