Laravel - 数据未存储在数据库中,图像上传失败

时间:2017-10-03 08:29:33

标签: php image laravel intervention

我有一个标题,文字和文章的帖子图片。但我无法将图像路径保存到数据库。这是我的代码。

public function save(Request $request, Post $post)
{       

    $this->validate(request(),
    [
        'title' => 'required',
        'image' => 'image|mimes:jpg,png,jpeg'
    ]);

    if($request->hasFile('image'))
    {
        $file = $request->file('image');
        $fileNameExt = $request->file('image')->getClientOriginalName();
        $fileName = pathinfo($fileNameExt, PATHINFO_FILENAME);
        $fileExt = $request->file('image')->getClientOriginalExtension();
        $fileNameToStore = $fileName.'_'.time().'.'.$fileExt;
        Image::make($file)->resize(600, 600)->save( public_path('media/' . $fileNameToStore));
        $post->image = $fileNameToStore;

    auth()->user()->publish(
        new Post(request(['title', 'text', 'image']))
    );
}
    return redirect ('/');
}

但它不会将图像路径存储到数据库的image列。而是存储了像C:\xampp\tmp\phpC549.tmp这样的tmp数据。这有什么不对?

1 个答案:

答案 0 :(得分:0)

我认为您需要更改保存代码

 auth()->user()->publish(
        new Post(request(['title', 'text', 'image']))
    );

 auth()->user()->publish(
        new Post([
'title'=>$request->title,
'text'=>$request->text,
])
    );

因为如果条件

,图像val已经设置在hasfile中

示例图像路径

public function addBlogCategoryPost(BlogCategoryRequest $request) {



        $destinationPath = 'iamge path';
        $data = [
            'category_name' => $request->category_name,
            'category_description' => $request->category_description,
            'seo_url' => $request->seo_url,
            'meta_title' => $request->meta_title,
            'meta_description' => $request->meta_description,
            'meta_keywords' => $request->meta_keywords,
            'meta_author' => $request->meta_author,
        ];

        if ($request->hasFile('category_image')) {

            $file = $request->file('category_image');
            //move iamge to folder
            $fileName = str_random(30) . '.' . $file->clientExtension();
            $file->move($destinationPath, $fileName);
            $data['category_image'] = $fileName;
        }

            $addTag = BlogCategory::create($data);



        if ($addTag) {
            return $addTag;
        }
    }