用ajax提交一组表单,里面包含一个图片,
原来不用ajax提交的时候可以成功保存到数据库,
但因为上传前要压缩图片,所以改为ajax提交,ajax请求成功发送,但不能保存到数据库,
我想可能是控制器里面的代码需要修改,但不知怎么改,下面是代码。
ps:压缩图片用到了localResizeIMG插件。https://github.com/think2011/localResizeIMG
下面是用ajax提交表单的视图:
提交
//用了localResizeIMG插件,用于上传图片前先压缩。https://github.com/think2011/localResizeIMG
下面是原来没用ajax时候的控制器,可以成功保存到数据库,现在不知怎么改。
public function store(Requests\StoreArticleRequest $request)
{
$article = new Article($request->except('photo'));
$article -> user_id = \Auth::id();
$file = $request->file('photo');
$destinationPath = 'uploads/';
$extension = $file->getClientOriginalExtension();
$fileName = \Auth::user()->id . '_' . time() . '.' . $extension;
$file->move($destinationPath, $fileName);
$article -> photo = '/'.$destinationPath.$fileName;
$article->save();
return redirect()->action('ArticleController@show', ['id' => $article->id]);
}
下面是StoreArticleRequest
public function rules()
{
return [
'title'=>'required',
'content'=>'required',
'photo'=>'image'
];
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
save前你先dd下$article数据看看csrf,ajax提交的时候不要忘。