一,需要写好相应的控制器
/**
* 上传文件
* @param $fileName
* @param $position
* @return \think\response\Json
*/
public function upload() {
// 获取表单上传文件
$file = request()->file('file');
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH.'public'.DS.'uploads/lunwen/');
if($info){
return json(array('code'=>200,'msg'=>'上传成功','file'=>$info->getFilename()));
}else{
// 上传失败获取错误信息
return json(array('code'=>500,'msg'=>$file->getError()));
}
}else{
return json(array('code'=>500,'msg'=>'上传失败'));
}
}
ps:注意,如果你在测试阶段,并且是使用postman测试,只接收文件而不移动的话,是会报500错误的。
二,前端文件代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
<form action="{:url('home/News/upload')}" method="post" enctype="multipart/form-data">
请选择您要上传的文件:<input type="file" name='file' />
<input type="submit" value="上传文件" />
</form>
</body>
</html>
ps:这里的form类型一定要是multipart/form-data,里面的name对应着request()->file('file')这里面的值
三,使用postman测试
ps:上传类型选form-data、key里面填的是request()->file('file')这里面的值,然后类型选File