添加图片文件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.ImgFilesUpdateCmd;
|
||||
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 io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -93,5 +94,11 @@ public class ImgFilesController {
|
|||
public SingleResponse<String> 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;
|
||||
|
||||
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.persistence.dataobject.ImgFilesDO;
|
||||
import com.zcloud.gbscommon.zcloudimgfiles.response.ZcloudImgFilesCO;
|
||||
|
|
@ -27,5 +28,7 @@ public interface ImgFilesCoConvertor {
|
|||
|
||||
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.ImgFilesQryCmd;
|
||||
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.repository.ImgFilesRepository;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.springframework.util.Base64Utils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
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.Map;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
|
||||
|
||||
|
|
@ -63,5 +72,46 @@ public class ImgFilesQueryExe {
|
|||
public String getImagePath() {
|
||||
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.ImgFilesUpdateCmd;
|
||||
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 lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -78,5 +79,10 @@ public class ImgFilesServiceImpl implements ImgFilesServiceI {
|
|||
public String 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.ImgFilesUpdateCmd;
|
||||
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 java.util.Map;
|
||||
|
|
@ -34,5 +35,7 @@ public interface ImgFilesServiceI {
|
|||
MultiResponse<ImgFilesCO> listAll(ImgFilesQryCmd imgFilesQryCmd);
|
||||
|
||||
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