当我想在laravel中上传带有表单的文件时,我无法从请求中删除文件值。
这是我的完整代码
if($request->hasFile('image')){
$string_name = str_random(12);
$image = $request->file('image')->move(getcwd().'/image/original',$string_name.'.'.$request->file('image')->getClientOriginalExtension());
$request->request->remove('image');
}
if($request->hasFile('thumbnail')){
$string_name = str_random(12);
$thumbnail = $request->file('thumbnail')->move(getcwd().'/image/thumbnail',$string_name.'.'.$request->file('thumbnail')->getClientOriginalExtension());
}
Portfolio::create($request->all());
但image
或thumbnail
文件不会从$request
中删除。这意味着这行代码不起作用:
$request->request->remove('image');
我尝试了很多方法,但是file
并未从请求中删除。
答案 0 :(得分:2)
在保存之前,无需从image
中删除$request
,而是可以使用->only([])
上的$request
方法来明确提及要保存到模型中的内容。
Portfolio::create($request->only(['title', ...]));
这将使您可以准确地指定要从$request
数据中保存的内容。
您可以进行相反的操作,也可以使用->except()
方法删除image
:
Portfolio::create($request->except('image'));
答案 1 :(得分:0)
使用此操作删除文件
$request->offsetUnset('input_file_name');
或
$request->except('filename');