zoukankan      html  css  js  c++  java
  • 【Java__文件上传】web页面同时上传文件和参数

    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;
        }
    
  • 相关阅读:
    linux查看日志文件内容命令tail、cat、tac、head、echo
    改变自己的128种方法,教你变得更优秀!
    php 23种设计模式
    Swoole消息推送
    PHP 出现 502 解决方案
    【centos7】添加开机启动服务/脚本
    curl 参数配置详解
    i系列标准-互联网周刊
    MySQL 设计与开发规范2
    Cocos Creator webviw网页置顶增加返回键的方法
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/13039385.html
Copyright © 2011-2022 走看看