| | |
| | | |
| | | |
| | | import com.ycl.jxkg.base.BaseApiController; |
| | | import com.ycl.jxkg.base.RestResponse; |
| | | import com.ycl.jxkg.configuration.property.SystemConfig; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.config.RuoYiConfig; |
| | | import com.ycl.jxkg.config.property.SystemConfig; |
| | | import com.ycl.jxkg.domain.vo.admin.file.UeditorConfigVO; |
| | | import com.ycl.jxkg.domain.vo.admin.file.UploadResultVO; |
| | | import com.ycl.jxkg.service.FileUpload; |
| | | import com.ycl.jxkg.service.UserService; |
| | | import com.ycl.jxkg.viewmodel.admin.file.UeditorConfigVM; |
| | | import com.ycl.jxkg.viewmodel.admin.file.UploadResultVM; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.UUID; |
| | | |
| | | |
| | | @RequestMapping("/api/admin/upload") |
| | |
| | | private static final String IMAGE_UPLOAD = "imgUpload"; |
| | | private static final String IMAGE_UPLOAD_FILE = "upFile"; |
| | | private final UserService userService; |
| | | private final RuoYiConfig ruoYiConfig; |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | public UploadController(FileUpload fileUpload, SystemConfig systemConfig, UserService userService) { |
| | | public UploadController(FileUpload fileUpload, SystemConfig systemConfig, UserService userService, RuoYiConfig ruoYiConfig) { |
| | | this.fileUpload = fileUpload; |
| | | this.systemConfig = systemConfig; |
| | | this.userService = userService; |
| | | this.ruoYiConfig = ruoYiConfig; |
| | | } |
| | | |
| | | @ResponseBody |
| | |
| | | public Object upload(HttpServletRequest request, HttpServletResponse response) { |
| | | String action = request.getParameter("action"); |
| | | if (action.equals(IMAGE_UPLOAD)) { |
| | | MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; |
| | | MultipartFile file = multipartHttpServletRequest.getFile(IMAGE_UPLOAD_FILE); |
| | | // 检查文件是否为空 |
| | | if (file.isEmpty()) { |
| | | return Result.fail(500, "上传的文件为空"); |
| | | } |
| | | try { |
| | | MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; |
| | | MultipartFile multipartFile = multipartHttpServletRequest.getFile(IMAGE_UPLOAD_FILE); |
| | | long attachSize = multipartFile.getSize(); |
| | | String imgName = multipartFile.getOriginalFilename(); |
| | | String filePath; |
| | | try (InputStream inputStream = multipartFile.getInputStream()) { |
| | | filePath = fileUpload.uploadFile(inputStream, attachSize, imgName); |
| | | // 获取文件名 |
| | | String originalFileName = StringUtils.cleanPath(file.getOriginalFilename()); |
| | | String randomName = UUID.randomUUID().toString().replace("-", "") + originalFileName.substring(originalFileName.lastIndexOf(".")); |
| | | // 指定文件存储路径 |
| | | String uploadDir = ruoYiConfig.getUrl(); // 修改为您希望存储的目录 |
| | | // 如果目录不存在,则创建目录 |
| | | File dir = new File(uploadDir); |
| | | if (!dir.exists()) { |
| | | dir.mkdirs(); |
| | | } |
| | | String imageType = imgName.substring(imgName.lastIndexOf(".")); |
| | | UploadResultVM uploadResultVM = new UploadResultVM(); |
| | | uploadResultVM.setOriginal(imgName); |
| | | uploadResultVM.setName(imgName); |
| | | uploadResultVM.setUrl(filePath); |
| | | uploadResultVM.setSize(multipartFile.getSize()); |
| | | uploadResultVM.setType(imageType); |
| | | uploadResultVM.setState("SUCCESS"); |
| | | return uploadResultVM; |
| | | // 构建目标文件的路径 |
| | | String filePath = uploadDir + "/" + randomName; |
| | | // 将文件保存到目标位置 |
| | | file.transferTo(new File(filePath)); |
| | | // 返回成功响应 |
| | | HashMap hashMap = new HashMap(2); |
| | | hashMap.put("name", originalFileName); |
| | | hashMap.put("url", randomName); |
| | | |
| | | String imageType = randomName.substring(randomName.lastIndexOf(".")); |
| | | UploadResultVO uploadResultVO = new UploadResultVO(); |
| | | uploadResultVO.setOriginal(randomName); |
| | | uploadResultVO.setName(randomName); |
| | | uploadResultVO.setUrl("/api/files/" + randomName); |
| | | uploadResultVO.setSize(10L); |
| | | uploadResultVO.setType(imageType); |
| | | uploadResultVO.setState("SUCCESS"); |
| | | return uploadResultVO; |
| | | } catch (IOException e) { |
| | | logger.error(e.getMessage(), e); |
| | | e.printStackTrace(); |
| | | // 返回失败响应 |
| | | return Result.fail(500, "文件上传失败"); |
| | | } |
| | | } else { |
| | | UeditorConfigVM ueditorConfigVM = new UeditorConfigVM(); |
| | | ueditorConfigVM.setImageActionName(IMAGE_UPLOAD); |
| | | ueditorConfigVM.setImageFieldName(IMAGE_UPLOAD_FILE); |
| | | ueditorConfigVM.setImageMaxSize(2048000L); |
| | | ueditorConfigVM.setImageAllowFiles(Arrays.asList(".png", ".jpg", ".jpeg", ".gif", ".bmp")); |
| | | ueditorConfigVM.setImageCompressEnable(true); |
| | | ueditorConfigVM.setImageCompressBorder(1600); |
| | | ueditorConfigVM.setImageInsertAlign("none"); |
| | | ueditorConfigVM.setImageUrlPrefix(""); |
| | | ueditorConfigVM.setImagePathFormat(""); |
| | | return ueditorConfigVM; |
| | | UeditorConfigVO ueditorConfigVO = new UeditorConfigVO(); |
| | | ueditorConfigVO.setImageActionName(IMAGE_UPLOAD); |
| | | ueditorConfigVO.setImageFieldName(IMAGE_UPLOAD_FILE); |
| | | ueditorConfigVO.setImageMaxSize(2048000L); |
| | | ueditorConfigVO.setImageAllowFiles(Arrays.asList(".png", ".jpg", ".jpeg", ".gif", ".bmp")); |
| | | ueditorConfigVO.setImageCompressEnable(true); |
| | | ueditorConfigVO.setImageCompressBorder(1600); |
| | | ueditorConfigVO.setImageInsertAlign("none"); |
| | | ueditorConfigVO.setImageUrlPrefix(""); |
| | | ueditorConfigVO.setImagePathFormat(""); |
| | | return ueditorConfigVO; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/image") |
| | | @ResponseBody |
| | | public RestResponse questionUploadAndReadExcel(HttpServletRequest request) { |
| | | public Result questionUploadAndReadExcel(HttpServletRequest request) { |
| | | MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; |
| | | MultipartFile multipartFile = multipartHttpServletRequest.getFile("file"); |
| | | long attachSize = multipartFile.getSize(); |
| | |
| | | try (InputStream inputStream = multipartFile.getInputStream()) { |
| | | String filePath = fileUpload.uploadFile(inputStream, attachSize, imgName); |
| | | userService.changePicture(getCurrentUser(), filePath); |
| | | return RestResponse.ok(filePath); |
| | | return Result.ok(filePath); |
| | | } catch (IOException e) { |
| | | return RestResponse.fail(2, e.getMessage()); |
| | | return Result.fail(2, e.getMessage()); |
| | | } |
| | | } |
| | | |