CommonsMultipartFile转换成File
老师,这里使用在 ImageUtil定义的transferCommonsMultipartFileToFile的转换方法也是可以的吧! 如果是的话,这两种方法的区别是什么?
58
收起
正在回答
3回答
同学你好,transferCommonsMultipartFileToFile()方法和getInputStream()方法都可以将CommonsMultipartFile转换为File类型,相当于是演示了两种方法进行转换。再使用transferCommonsMultipartFileToFile()方法时中间多生成一个文件,而使用流就不会有这个问题。
祝:学习愉快~
好帮手慕阿满
2020-04-28 20:06:53
同学你好,关于同学的问题:
1、利用CommonsMultipartFile中的getInputStream方法来获取一个输入流,然后配合写入File对象中的方法,可以换成ImageUtil定义的transferCommonsMultipartFileToFile()方法。这两种方法的效果相同,不同的是getInputStream()方法相当于CommonsMultipartFile转换为File一个中间步骤。
2、老师相当于是演示了两种方法进行的转换。但是使用CommonsMultipartFile()需要多生成一个文件,之后用不到这个文件,所以可以删掉。
这段代码是生成上传的图片文件,需要在注册店铺之前获取到,之后才能调用addShop()方法添加到数据库中。
祝:学习愉快~
jia_蛙
2020-04-28 17:45:12
上面说的有点问题,我重新说一下我的问题: 1.在registerShop方法中的注册店铺逻辑中,因为前端用户传过来的流文件流是Spring 自带的 文件处理对象CommonsMultipartFile。所以我们这里需要将这个CommonsMultipartFile转换成 File,但是因为无法直接转换,所以这里我们编写了一个方法利用CommonsMultipartFile中的 getInputStream方法来获取一个输入流,然后通过配合输出流写入到File对象中去,这里的这个 方法可以用之前我们在ImageUtil定义的transferCommonsMultipartFileToFile的转换方法应该 也是可以的吧? 那为什么这里还有多些一个这个方法?还有这两个方法有什么区别? 2. 视频中老师在编写: File shopImgFile = new File(PathUtil.getImgBasePath()+ ImageUtil.getRandomFileName()); 的时候利用随机生成文件名创建一个File对象,然后又说什么后面在删除,(12.27分钟).这里后面 为什么要删除?而且我还有点不理解这段代码的含义,为什么要在shopService.addShop(shop,shopImgFile); 注册店铺之前执行这段代码: //通过根路径和随机生成的文件名组合程一个File对象 File shopImgFile = new File(PathUtil.getImgBasePath()+ ImageUtil.getRandomFileName()); try { //根据这个File对象创建对应的文件 shopImgFile.createNewFile(); } catch (IOException e) { modelMap.put("success",false); modelMap.put("errMsg",e.getMessage()); return modelMap; } try { inputStreamToFile(shopImg.getInputStream(),shopImgFile); } catch (IOException e) { modelMap.put("success",false); modelMap.put("errMsg",e.getMessage()); return modelMap; }
//2.注册店铺 if(shop!= null && shopImg != null){ //owner店主的信息是可以通过session会话来获取的,因为就不需要前端传递过来 PersonInfo owner = new PersonInfo(); owner.setUserId(1L); shop.setOwner(owner); //通过根路径和随机生成的文件名组合程一个File对象 File shopImgFile = new File(PathUtil.getImgBasePath()+ ImageUtil.getRandomFileName()); try { //根据这个File对象创建对应的文件 shopImgFile.createNewFile(); } catch (IOException e) { modelMap.put("success",false); modelMap.put("errMsg",e.getMessage()); return modelMap; } try { //方式1:直接用之前在ImageUtil.java编写的转换工具类 //File shopImgFile = ImageUtil.transferCommonsMultipartFileToFile(shopImg); //方式2:重写定义一个File对象利用输入输出流来进行转换 inputStreamToFile(shopImg.getInputStream(),shopImgFile); } catch (IOException e) { modelMap.put("success",false); modelMap.put("errMsg",e.getMessage()); return modelMap; } //转换File的步骤都没问题就进行店铺的注册 ShopExecution se = shopService.addShop(shop,shopImgFile); //根据返回值判断注册情况 当前店铺状态是待审核状态 if(se.getState() == ShopSateEnum.CHECK.getState()){ modelMap.put("seccess",true); }else { modelMap.put("success",false); modelMap.put("errMsg",se.getStateInfo());//返回状态对应的注释 } //返回结果 return modelMap;
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星