我正在尝试通过axios api槽Laravel上传文件。下面是控制器代码,但我不明白为什么Laravel告诉我第24行的变量名称未定义。在我看来,该变量已定义...
public function store(Request $request)
{
$this->validate($request, [
'image' => 'required'
]);
if($request->get('image'))
{
$image = $request->get('image');
$name = time().'.' . explode('/', explode(':', substr($image, 0, strpos($image, ';')))[1])[1];
\Image::make($request->get('image'))->save(public_path('images/').$name);
}
$image= new FileUpload();
$image->image_name = $name;
$image->save();
return response()->json(['success' => 'You have successfully uploaded an image'], 200);
}
这是第24行:$image->image_name = $name;
您必须将变量设置在较高的可见性范围内:
public function store(Request $request)
{
// you have to check your image file too
$this->validate($request, [
'image' => 'required','mimes:jpeg,jpg,png,gif'
]);
$name=''; // here you define your vaiable
if($request->get('image'))
{
$image = $request->get('image');
$name = time().'.' . explode('/', explode(':', substr($image, 0, strpos($image, ';')))[1])[1];
\Image::make($request->get('image'))->save(public_path('images/').$name);
}
$image= new FileUpload();
$image->image_name = $name;
$image->save();
return response()->json(['success' => 'You have successfully uploaded an image'], 200);
}
有关变量作用域的更多信息: