无法将图像数据写入路径

时间:2016-12-16 15:49:52

标签: laravel laravel-5.3 intervention

出于某种原因,我无法使用干预工具保存图片。我以前做过这个,我在这里也遵循同样的事情,但现在它没有被保存。我得到的错误是:

         $this->validate($request, array(
         'title'=>'required|max:255',
         'slug'=>'required|min:3|max:255|unique:posts',
         'body'=>'required',
         'img'=>'image',
         'desc'=>'max:255'
        ));

    $post=new Post;
    $post->title=$request->title;
    $post->slug=$request->slug;
    $post->body=$request->body;
    $post->desc = $request->desc;
    if($request->hasFile('img')){
        $image=$request->file('img');
        $imageName=time().'.'.$image->getClientOriginalExtension();
        $location='static/photos/'.$imageName;
        Image::make($image)->save($location);
        $post->image=$imageName;
    }

    $post->save();
    $post->tags()->sync($request->tags, false);
    $post->categories()->sync($request->categories, false);
    /*Session::flash('success', 'The Post Has been published!');*/
    return redirect()->route('slug', $post->slug); 

这是我在控制器中的商店功能:

public_path()

这应该是这样的,但当我看到它由于某种原因不起作用时,我也尝试了它并且它也不起作用。

        <div class="{{$errors->has('img')?'has-error':''}}">
         <label class="label" for="img">Upload picture</label>
           <div>
        <input type="file" name="img" id="img" class="input" multiple="multiple">
                </div>
             </div>

文件夹本身(静态)位于项目的根目录中。

上传的表单视图是:

           {{csrf_field()}}

icacls "C:\Users\GabMic\b\static" /grant GabMic:F

除此之外,我还检查了该文件夹(和子文件夹)的权限,甚至还运行了命令

MyParam

我在这里缺少什么? Ps,即时通讯使用最新版本的laravel。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

尝试以下代码。首先声明您的路径,然后验证该文件夹是否存在。

if($request->hasFile('img')){
    $image=$request->file('img');
    $path = base_path("static/photos/");
    File::exists($path) or File::makeDirectory($path, 0777, true, true);
    $img = Image::make($image->getRealPath())->save($path . time().'.'.$image->getClientOriginalExtension();
}

答案 1 :(得分:-3)

尝试:

$location='../public/static/photos/'.$imageName;

$location='../storage/static/photos/'.$imageName;
        Image::make($image)->save($location);