UploadApi.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.zhiqiyun.open.router.apis;
  2. import com.dliyun.oap.framework.annotation.ServiceMethod;
  3. import com.dliyun.oap.framework.annotation.ServiceMethodBean;
  4. import com.dliyun.oap.framework.response.OapResponse;
  5. import com.zhiqiyun.open.core.models.UploadResult;
  6. import com.zhiqiyun.open.core.service.UploadFileInfoService;
  7. import com.zhiqiyun.open.mvc.Result;
  8. import com.zhiqiyun.open.mvc.params.UploaderBase64Param;
  9. import com.zhiqiyun.open.router.request.UploaderBase64Request;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.apache.commons.codec.binary.Base64;
  12. import org.apache.commons.codec.digest.DigestUtils;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import java.io.IOException;
  18. @Slf4j
  19. @ServiceMethodBean
  20. public class UploadApi {
  21. @Autowired
  22. private UploadFileInfoService uploadFileInfoService;
  23. @ServiceMethod(method = "uploader.handle.base64File", title = "文件上传")
  24. public OapResponse handleBase64File(@RequestBody UploaderBase64Request request) throws IOException {
  25. byte[] fileBuff = Base64.decodeBase64(request.getBase64File());
  26. String originalFilename = request.getFilename();
  27. if (StringUtils.isBlank(originalFilename)) {
  28. originalFilename = String.format("%s.%s", DigestUtils.md5Hex(fileBuff), "png");
  29. }
  30. UploadResult uploadResult = this.uploadFileInfoService.handle(originalFilename, fileBuff);
  31. if (uploadResult.isSuccess()) {
  32. return OapResponse.success().setBody(uploadResult);
  33. } else {
  34. return OapResponse.fail("UPLOAD_FAIL", uploadResult.getMessage());
  35. }
  36. }
  37. }