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 { |
| |
| 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; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律