添加图片文件Base64格式接口功能
parent
5381c299e6
commit
97d23b58eb
|
|
@ -13,6 +13,7 @@ import com.zcloud.basic.info.dto.ImgFilesPageQry;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesUpdateCmd;
|
import com.zcloud.basic.info.dto.ImgFilesUpdateCmd;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
||||||
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -93,5 +94,11 @@ public class ImgFilesController {
|
||||||
public SingleResponse<String> getImagePath() {
|
public SingleResponse<String> getImagePath() {
|
||||||
return SingleResponse.of(imgFilesService.getImagePath());
|
return SingleResponse.of(imgFilesService.getImagePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("所有数据(base64格式)")
|
||||||
|
@GetMapping("/listAllBase64")
|
||||||
|
public MultiResponse<ImgFilesBase64CO> listAllBase64(ImgFilesQryCmd imgFilesQryCmd) {
|
||||||
|
return imgFilesService.listAllBase64(imgFilesQryCmd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.zcloud.basic.info.command.convertor;
|
package com.zcloud.basic.info.command.convertor;
|
||||||
|
|
||||||
import com.zcloud.basic.info.domain.model.ImgFilesE;
|
import com.zcloud.basic.info.domain.model.ImgFilesE;
|
||||||
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO;
|
import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO;
|
||||||
import com.zcloud.gbscommon.zcloudimgfiles.response.ZcloudImgFilesCO;
|
import com.zcloud.gbscommon.zcloudimgfiles.response.ZcloudImgFilesCO;
|
||||||
|
|
@ -27,5 +28,7 @@ public interface ImgFilesCoConvertor {
|
||||||
|
|
||||||
List<ZcloudImgFilesCO> converCOsToDubboCOs(List<ImgFilesCO> imgFilesCOs);
|
List<ZcloudImgFilesCO> converCOsToDubboCOs(List<ImgFilesCO> imgFilesCOs);
|
||||||
|
|
||||||
|
List<ImgFilesBase64CO> converDOsToBase64COs(List<ImgFilesDO> imgFilesDOs);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,15 +9,24 @@ import com.zcloud.basic.info.dto.ImgFilesAddCmd;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesPageQry;
|
import com.zcloud.basic.info.dto.ImgFilesPageQry;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
||||||
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO;
|
import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO;
|
||||||
import com.zcloud.basic.info.persistence.repository.ImgFilesRepository;
|
import com.zcloud.basic.info.persistence.repository.ImgFilesRepository;
|
||||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.springframework.util.Base64Utils;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -63,5 +72,46 @@ public class ImgFilesQueryExe {
|
||||||
public String getImagePath() {
|
public String getImagePath() {
|
||||||
return imageConfig.getUrl();
|
return imageConfig.getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MultiResponse<ImgFilesBase64CO> executeListBase64(ImgFilesQryCmd imgFilesQryCmd) {
|
||||||
|
Map<String,Object> params = PageQueryHelper.toHashMap(imgFilesQryCmd);
|
||||||
|
List<ImgFilesDO> imgFilesDOList = imgFilesRepository.listAll(params);
|
||||||
|
|
||||||
|
// 先转换为ImgFilesCO以保留原有字段
|
||||||
|
List<ImgFilesBase64CO> imgFilesCOList = imgFilesCoConvertor.converDOsToBase64COs(imgFilesDOList);
|
||||||
|
|
||||||
|
List<ImgFilesBase64CO> resultList = new ArrayList<>();
|
||||||
|
for (ImgFilesBase64CO base64CO : imgFilesCOList) {
|
||||||
|
|
||||||
|
// 设置MIME类型
|
||||||
|
String fileName = base64CO.getFileName();
|
||||||
|
String mimeType = URLConnection.guessContentTypeFromName(fileName);
|
||||||
|
if (mimeType == null) {
|
||||||
|
// 默认MIME类型
|
||||||
|
mimeType = "application/octet-stream";
|
||||||
|
}
|
||||||
|
base64CO.setMimeType(mimeType);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 读取文件内容并转换为base64
|
||||||
|
String fileUrl = imageConfig.getUrl() + base64CO.getFilePath();
|
||||||
|
System.out.println(fileUrl);
|
||||||
|
|
||||||
|
// 使用URL类读取远程文件
|
||||||
|
URL url = new URL(fileUrl);
|
||||||
|
try (InputStream inputStream = url.openStream()) {
|
||||||
|
byte[] fileContent = IOUtils.toByteArray(inputStream);
|
||||||
|
String base64Content = Base64Utils.encodeToString(fileContent);
|
||||||
|
base64CO.setBase64(base64Content);
|
||||||
|
resultList.add(base64CO);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 处理文件读取异常
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return MultiResponse.of(resultList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import com.zcloud.basic.info.dto.ImgFilesPageQry;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesUpdateCmd;
|
import com.zcloud.basic.info.dto.ImgFilesUpdateCmd;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
||||||
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -78,5 +79,10 @@ public class ImgFilesServiceImpl implements ImgFilesServiceI {
|
||||||
public String getImagePath() {
|
public String getImagePath() {
|
||||||
return imgFilesQueryExe.getImagePath();
|
return imgFilesQueryExe.getImagePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MultiResponse<ImgFilesBase64CO> listAllBase64(ImgFilesQryCmd imgFilesQryCmd) {
|
||||||
|
return imgFilesQueryExe.executeListBase64(imgFilesQryCmd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.zcloud.basic.info.dto.ImgFilesPageQry;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
import com.zcloud.basic.info.dto.ImgFilesQryCmd;
|
||||||
import com.zcloud.basic.info.dto.ImgFilesUpdateCmd;
|
import com.zcloud.basic.info.dto.ImgFilesUpdateCmd;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesCO;
|
||||||
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesBase64CO;
|
||||||
import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO;
|
import com.zcloud.basic.info.dto.clientobject.ImgFilesInfoCO;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -34,5 +35,7 @@ public interface ImgFilesServiceI {
|
||||||
MultiResponse<ImgFilesCO> listAll(ImgFilesQryCmd imgFilesQryCmd);
|
MultiResponse<ImgFilesCO> listAll(ImgFilesQryCmd imgFilesQryCmd);
|
||||||
|
|
||||||
String getImagePath();
|
String getImagePath();
|
||||||
|
|
||||||
|
MultiResponse<ImgFilesBase64CO> listAllBase64(ImgFilesQryCmd imgFilesQryCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.zcloud.basic.info.dto.clientobject;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2025-10-30 16:10:04
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ImgFilesBase64CO extends ImgFilesCO {
|
||||||
|
//文件类型
|
||||||
|
@ApiModelProperty(value = "文件类型")
|
||||||
|
private String mimeType;
|
||||||
|
//base64数据
|
||||||
|
@ApiModelProperty(value = "base64数据")
|
||||||
|
private String base64;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue