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

同学,这种判空纯属是为了增强代码的健壮性而做的。

0
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程