2017-02-10 57 views
0

存储的文件,我得到了一个名为“图片”文件上传表单。窗体工作,我得到的图像,但由于某种原因,它不存储。这是我用来存储图像的代码:Laravel不要求

$path = $request->image->store('storage/uploads'); 

在这之前我检查

$request->hasFile('image') 

后来我节省$路径。 Path是成功保存,当我检查一下它的真正的存储/上传/ radnomid但没有文件

+0

尝试'$请求 - >图像 - >动(的DestinationPath,文件名)' – raz

回答

0

对不起张贴我自己的答案,但问题是,在默认情况下laravel公共磁盘不上传到公共目录。需要设置进行更改如下: 配置/ filesystems.php

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

,然后简单地说:

$path = $request->image->store('storage/uploads','public'); 
0

确保要包括的multipart/form-data的的加密类型。您可以直接添加属性表单,或者你可以,如果你使用的是表单辅助函数中添加“文件” =>真。

这是使用自带的Laravel 5.

public function processForm(Request $request) 
{ 
    if($request->hasFile('image')) { 
     $file = $request->file('image'); 
     // Now you have your file in a variable that you can do things with 
    } 
} 
0

你可以用这个代码尝试上传功能的传统方式,

Image::make($request->file('image'))->save('upload_path/filename.jpg')); 

这里是这个形象包装的完整文档。 http://image.intervention.io/

0

尝试做这样的

if ($request->hasFile('image')) { 
    $image = $request->file('image'); 
    $filename = time() . '.' . $image->getClientOriginalExtension(); 
    $location = public_path('images/comment/' . $filename); 
    Image::make($image)->resize(800, 600)->save($location); 
} 
0

我想你应该试试这个:

Image::make($request->file('image'))->save(storage_path('uploads/image.jpg')); 

希望这个作品的您!

0

如果您filesystems.php CONFIGS是默认然后

$path = $request->image->store('storage/uploads'); 

保存不存水/上传操作,但在存储/应用/存储/上传您的文件。

和当前公认的答案是不是真的好,因为要用于存储模板文件不是用户上传public_path()之意。根据官方文档上传应在存储/文件夹中使用公共/存储符号链接/但不能在公共/。

阅读更多https://laravel.com/docs/5.4/filesystem#the-public-disk