2016-11-12 46 views
3

我不能使用存储方法保存图像。Laravel无法使用存储保存图像

如果我做的:$file->move(public_path().'/', $file->getClientOriginalName());

图像将得到保存,我可以在取景器中打开它。

但是,如果我救使用图像:

$extension = $file->guessExtension(); 
     $filename = 'thumnail_'.$id.'.'.$extension; 
     if ($file) { 
      $s3 = Storage::disk('public')->put($filename, $file); 
     } 

它也将得到保存到文件夹,但后来我不能打开它,因为该文件已损坏

而且是明确的“文件”从控制器发送到我的模型:$ file = $ request-> file('images');

+0

$文件名必须有基于文件的路径.. –

+0

,$文件必须是内容的文件,你可以使用的file_get_contents,所以: 如果($文件){$ S3 =库存::磁盘(” public') - > put($ filename,file_get_contents($ file)); } –

+0

@YhanhanBaruchel你在说什么?我正在写入('公开')存储在/ storage文件夹中。该文件得到保存我只能打开它 – user2722667

回答

0

什么是您的文件系统的公共磁盘配置?我在这里用默认值进行了一些测试,并且工作顺利。

如果您使用s3来存储文件,您必须为此安装一个软件包。关于它的全部内容:https://laravel.com/docs/5.3/filesystem

+0

它被设置为在/ app中存储。我想先将文件保存在我的系统中,然后启动一个队列,将其调整大小/将文件上传到S3。唯一的问题是,我不能直接从窗体传递文件到队列,我必须先将它保存在我的系统上,以便队列可以读取它 – user2722667