首页 > 编程语言 > 详细

【Java__文件上传】web页面同时上传文件和参数

时间:2020-06-03 19:49:35      阅读:148      评论:0      收藏:0      [点我收藏+]

code

    @RequestMapping("/uploadFile")
    @ResponseBody
    public AjaxResult uploadFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
            return new AjaxResult(0, "isMultipart error");
        }
        String type = request.getParameter("type");
        if (StrUtils.isEmpty(type)) {
            return new AjaxResult(0, "type error");
        }
        boolean isOk = false;
        String imgUrl = "";
        try {
            // FileItem 是表单中的每一个元素的封装  创建一个 FileItem 的工厂类
            FileItemFactory factory = new DiskFileItemFactory();
            // 创建一个文件上传处理器(装饰设计模式)
            ServletFileUpload upload = new ServletFileUpload(factory);
            // 解析请求
            List<FileItem> items = upload.parseRequest(request);
            for (FileItem fileItem : items) {
                if (fileItem.isFormField()) {
                    continue;
                }
                String savePathDir = request.getServletContext().getRealPath("/upload/" + getExId(request) + "/" + type + "/");
                File file = new File(savePathDir);
                if (!file.exists()) file.mkdir();
                String fileName = UUID.randomUUID() + fileItem.getName().substring(fileItem.getName().lastIndexOf("."));
                fileItem.write(new File(savePathDir + fileName));
                imgUrl = request.getContextPath() + "/upload/" + getExId(request) + "/" + type + "/" + fileName;
                isOk = true;
                break;
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
            return AjaxResult.fail();
        }
        AjaxResult ajaxResult = AjaxResult.success();
        if (isOk) {
            ajaxResult.getMap().put("filename", imgUrl);
        } else {
            ajaxResult.setCode(0);
            ajaxResult.setMsg("上传失败");
            File file = new File(imgUrl);
            if (file.exists()) {
                file.delete();
            }
        }
        return ajaxResult;
    }

【Java__文件上传】web页面同时上传文件和参数

原文:https://www.cnblogs.com/kikyoqiang/p/13039385.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!