| | |
| | | package com.nq.controller.backend; |
| | | |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.github.pagehelper.PageInfo; |
| | | |
| | | import com.google.common.collect.Maps; |
| | |
| | | |
| | | import com.nq.utils.PropertiesUtil; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.time.LocalDate; |
| | | import java.util.Map; |
| | | import java.util.UUID; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | |
| | | @ResponseBody |
| | | public ServerResponse upload(HttpSession session, @RequestParam(value = "upload_file", required = false) MultipartFile file, HttpServletRequest request) { |
| | | |
| | | String path = request.getSession().getServletContext().getRealPath("upload"); |
| | | |
| | | ServerResponse serverResponse = this.iFileUploadService.upload(file, path); |
| | | |
| | | if (serverResponse.isSuccess()) { |
| | | |
| | | String targetFileName = serverResponse.getData().toString(); |
| | | |
| | | String url = PropertiesUtil.getProperty("ftp.server.http.prefix") + targetFileName; |
| | | |
| | | |
| | | Map fileMap = Maps.newHashMap(); |
| | | |
| | | fileMap.put("uri", targetFileName); |
| | | |
| | | fileMap.put("url", url); |
| | | |
| | | |
| | | return ServerResponse.createBySuccess(fileMap); |
| | | |
| | | // 兼容c端组件上传原理 |
| | | String fileType = file.getOriginalFilename(); |
| | | if (StrUtil.isEmpty(fileType) || fileType.contains("blob")) { |
| | | fileType = "blob.png"; |
| | | } |
| | | |
| | | return serverResponse; |
| | | String fileName = file.getOriginalFilename(); |
| | | String fileExtentionName = fileName.substring(fileName.lastIndexOf(".") + 1); |
| | | |
| | | // 生成唯一的文件名 |
| | | String id = UUID.randomUUID().toString(); |
| | | String path = LocalDate.now() + "/" + id + "." + fileExtentionName; |
| | | |
| | | // 确保目标文件夹存在 |
| | | File targetDir = new File(PropertiesUtil.getProperty("loca.images.dir") + "/" + LocalDate.now()); |
| | | if (!targetDir.exists()) { |
| | | targetDir.mkdirs(); |
| | | } |
| | | |
| | | // 构建本地文件路径 |
| | | File localFile = new File(targetDir, id + "." + fileExtentionName); |
| | | |
| | | // 打印上传路径 |
| | | log.info("LocalFileUploadService uploadFile localFilePath: {}", localFile.getAbsolutePath()); |
| | | |
| | | try { |
| | | // 将文件保存到本地 |
| | | file.transferTo(localFile); |
| | | |
| | | } catch (IOException e) { |
| | | log.error("LocalFileUploadService uploadFile IOException", e.getMessage(), e); |
| | | } |
| | | String url = PropertiesUtil.getProperty("ftp.server.http.prefix") + path; |
| | | // 返回相对路径 |
| | | return ServerResponse.createBySuccess(url); |
| | | |
| | | } |
| | | |