安卓打开相机相册功能实现,并通过安卓打开相机相册功能实现,并通过SpringBoot对接对接Retrofit2上传图片上传图片
((@RequestBody转变为转变为MultiPartFile全流程,低门槛实现系列)全流程,低门槛实现系列)
需求分析:需求分析:
通过安卓打开相机相册,使用通过安卓打开相机相册,使用SSM框架搭建后台接口,前端使用框架搭建后台接口,前端使用retrofit2进行文件传输进行文件传输
注:低门槛实现系列就是不涉及过深的知识点,不做过多的异常捕获,不过滤版本不判空,面向小白。
正文正文
首先需要搭建首先需要搭建SSM框架,默认你已经学会了,相应的接口可以看看下面这一篇文章框架,默认你已经学会了,相应的接口可以看看下面这一篇文章
https://blog.csdn.net/qq_44403367/article/details/105690838
@Controller
@ResponseBody
@RequestMapping("Oss")
public class OssController {
@Autowired
private OssService ossService;
@ApiOperation(value="文件上传", notes="文件上传")
@ResponseBody
@RequestMapping(value = "/uploadImage",method = RequestMethod.POST,consumes = "multipart/*",headers = "Content-Type=multipart/form-data")
public BaseModel upload(@ApiParam("商品id") @RequestParam(value = "id") int id,
@ApiParam("上传的文件") @RequestParam("file") MultipartFile file,HttpServletRequest request) throws Exception {
BaseModel model = new BaseModel();
ossService.getImagePath(id,file,model);
return model;
}
}
其中@RequestMapping注解指定了content-type类型是multipart,这里需要一点swagger的知识,声明的MultipartFile类型会被自动解析生成对应html组件如下图所示,而
ossService.getImagePath(id,file,model);里面对file的本地化已经在刚刚推荐的链接里面了。
然后是打开安卓相机相册功能的实现然后是打开安卓相机相册功能的实现
打开相册打开相册
先看一下demo的页面设计
其中拍照按钮会输出一张图片到外部存储,在通过IO流加载到imageView里面,点击上传实现上传功能
//给个返回码,可以自定义
private static final int REQUEST_CODE_ALBUM = 100;//打开相册
private static final int REQUEST_CODE_CAMERA = 101;//打开相机
private File file;
//这个是打开相册按钮的监听事件,通过intent直接进入相册,写到按钮事件里去啊。
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);