targetFileName为空的判断换成file判断其是否为空是否更恰当?
来源:8-6 后台商品图片的springmvc上传与富文本上传ftp服务器功能开发1
vijayjay
2021-01-08
targetFileName是由path和uploadFileName拼接的完整路径,而uploadFileName是UUID+“.”+fileExtensionName
所以targetFile.getName()不可能为空,在controller里面判断返回的targetFileName是否为空没法判断前端是否有传入图片。
当不选择文件直接点击上传,是否在调用上传的方法前增加判断file.getOriginalFilename()是否存在更合理?
StringUtils.isBlank(targetFileName)这个的判断是无法上传成功的判断是吗,但是targetFile.getName()在正常情况下不可能为空,什么情况下会为空?我把FTP服务器关了这个都照样返回成功。
ps: 图片/文件上传也没有这个判断,如果要加,也是如此。
@RequestMapping("richtext_img_upload.do")
@ResponseBody
public Map richtextImgUpload(HttpSession session, @RequestParam(value = "upload_file", required = false) MultipartFile file,
HttpServletRequest request, HttpServletResponse response) {
Map resultMap = Maps.newHashMap();
//权限判断
User user = (User) session.getAttribute(Const.CURRENT_USER);
if (user == null) {
resultMap.put("success", false);
resultMap.put("msg", "请登录管理员");
return resultMap;
}
if (iUserService.checkAdminRole(user).isSuccess()) {
//填充业务
String path = request.getSession().getServletContext().getRealPath("upload");
//增加file.getOriginalFilename()判断,名字是否为空
if (StringUtils.isBlank(file.getOriginalFilename())) {
resultMap.put("success", false);
resultMap.put("msg", "上传失败");
return resultMap;
}
String targetFileName = iFileService.upload(file, path);
if (StringUtils.isBlank(targetFileName)) {
resultMap.put("success", false);
resultMap.put("msg", "上传失败");
return resultMap;
}
String url = PropertiesUtil.getProperty("ftp.server.http.prefix") + targetFileName;
resultMap.put("success", true);
resultMap.put("msg", "上传成功");
resultMap.put("file_path", url);
response.addHeader("Access-Control-Allow-Headers", "X-File-Name");
return resultMap;
} else {
resultMap.put("success", false);
resultMap.put("msg", "无权限操作");
return resultMap;
}
}
写回答
1回答
-
geelylucky
2021-01-11
同学,这种判空纯属是为了增强代码的健壮性而做的。
00
相似问题