【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;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM