提交下下

This commit is contained in:
邱波 2025-04-01 18:47:10 +08:00
parent 02db2636b6
commit 44616028b2
5 changed files with 84 additions and 8 deletions

12
pom.xml
View File

@ -222,8 +222,8 @@
<jdbcPort>13307</jdbcPort>
<log4jFile>log4j2-dev.xml</log4jFile>
<sqlPrintClass>org.apache.ibatis.logging.stdout.StdOutImpl</sqlPrintClass>
<MAX_FILE_SIZE>300MB</MAX_FILE_SIZE>
<MAX_REQUEST_FILE_SIZE>500MB</MAX_REQUEST_FILE_SIZE>
<MAX_FILE_SIZE>3MB</MAX_FILE_SIZE>
<MAX_REQUEST_FILE_SIZE>5MB</MAX_REQUEST_FILE_SIZE>
<HTTP_DEFAULT_PROXY_HOST></HTTP_DEFAULT_PROXY_HOST>
<HTTP_DEFAULT_PROXY_PORT>8080</HTTP_DEFAULT_PROXY_PORT>
<HTTP_DEFAULT_PROXY_ENABLE>false</HTTP_DEFAULT_PROXY_ENABLE>
@ -240,8 +240,8 @@
<jdbcIp>47.97.80.223</jdbcIp>
<jdbcPort>13307</jdbcPort>
<log4jFile>log4j2</log4jFile>
<MAX_FILE_SIZE>300MB</MAX_FILE_SIZE>
<MAX_REQUEST_FILE_SIZE>500MB</MAX_REQUEST_FILE_SIZE>
<MAX_FILE_SIZE>3MB</MAX_FILE_SIZE>
<MAX_REQUEST_FILE_SIZE>5MB</MAX_REQUEST_FILE_SIZE>
<sqlPrintClass>org.apache.ibatis.logging.stdout.StdOutImpl</sqlPrintClass>
<HTTP_DEFAULT_PROXY_HOST></HTTP_DEFAULT_PROXY_HOST>
<HTTP_DEFAULT_PROXY_PORT>8080</HTTP_DEFAULT_PROXY_PORT>
@ -257,8 +257,8 @@
<jdbcUrl>jdbc:mysql://${jdbcIp}:${jdbcPort}/edu-train-dev?useUnicode=true&amp;characterEncoding=UTF-8&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=Hongkong&amp;useSSL=false&amp;allowMultiQueries=true</jdbcUrl>
<jdbcIp>47.97.80.223</jdbcIp>
<jdbcPort>13307</jdbcPort>
<MAX_FILE_SIZE>300MB</MAX_FILE_SIZE>
<MAX_REQUEST_FILE_SIZE>500MB</MAX_REQUEST_FILE_SIZE>
<MAX_FILE_SIZE>3MB</MAX_FILE_SIZE>
<MAX_REQUEST_FILE_SIZE>5MB</MAX_REQUEST_FILE_SIZE>
<log4jFile>log4j2.xml</log4jFile>
<sqlPrintClass>org.apache.ibatis.logging.log4j2.Log4j2Impl</sqlPrintClass>
<HTTP_DEFAULT_PROXY_HOST></HTTP_DEFAULT_PROXY_HOST>

View File

@ -0,0 +1,19 @@
package com.face.attachment;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "file")
public class FileUploadProperties {
private String uploadDir;
// Getter and Setter
public String getUploadDir() {
return uploadDir;
}
public void setUploadDir(String uploadDir) {
this.uploadDir = uploadDir;
}
}

View File

@ -0,0 +1,15 @@
package com.face.attachment;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class FileUploadUtil {
public static void ensureDirectoryExists(String path) {
try {
Files.createDirectories(Paths.get(path));
} catch (IOException e) {
throw new RuntimeException("Failed to create directory: " + path, e);
}
}
}

View File

@ -1,6 +1,8 @@
package com.face.attachment.controller;
import com.face.attachment.FileUploadProperties;
import com.face.attachment.FileUploadUtil;
import com.face.attachment.entity.FaceInfo;
import com.face.attachment.service.IFaceInfoService;
import com.face.attachment.service.vo.AttachmentVO;
@ -33,14 +35,18 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import java.io.File;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.Base64;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.Semaphore;
@RestController
@ -49,6 +55,11 @@ import java.util.concurrent.Semaphore;
@Tag(name = "人脸融合基础管理")
public class FaceInfoManagerController extends ManageBaseController {
private static final String UPLOAD_DIR = "/uploads/";
@Autowired
private FileUploadProperties fileUploadProperties;
//定义信号资源包的总数 只有2个
Semaphore semaphore=new Semaphore(20);
@ -120,6 +131,9 @@ public class FaceInfoManagerController extends ManageBaseController {
@RequestParam(required = true, value = "faceId") String faceId
) throws Exception {
if(null!=file && file.getSize()> 3145728L){
throw SystemExceptionUtils.buildBusinessException("上传图片请不要超过3MB!");
}
String imgUrl="";
FuseFaceResponse resp=null;
@ -151,6 +165,28 @@ public class FaceInfoManagerController extends ManageBaseController {
byte[] imageBytes = file.getBytes();
// long timeStamp1 = System.currentTimeMillis();
Path uploadPath = Paths.get(fileUploadProperties.getUploadDir()).toAbsolutePath().normalize();
String originalFilename = file.getOriginalFilename();
String extendsName = originalFilename.substring(originalFilename.lastIndexOf("."));
// 2.文件重命名
String uuid = UUID.randomUUID().toString();
String newFileName = uuid.concat(extendsName);
Path filePath = uploadPath.resolve(newFileName);
//将文件存储在服务器的磁盘目录
file.transferTo(new File(filePath.toString()));
/* // 构建文件的访问URL可选
String fileDownloadUri = ServletUriComponentsBuilder.fromCurrentContextPath()
.path("/download/")
/*
InputStream imageInputStream = new FileInputStream("F:\\体验腾讯人脸融合-素材\\111.jpg");
@ -181,6 +217,7 @@ public class FaceInfoManagerController extends ManageBaseController {
MergeInfo mergeInfo=new MergeInfo();
mergeInfo.setImage(imgBase);
//mergeInfo.setUrl("http://www.gydzps.com/pic/add285fe-c034-47f4-a0ff-2568b1e082c1.jpg");
//素材人脸和对应FaceID
mergeInfo.setTemplateFaceID(faceId);
@ -200,9 +237,11 @@ public class FaceInfoManagerController extends ManageBaseController {
System.out.println(AbstractModel.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
log.error("TencentCloudSDKException", e);
} catch (IOException e) {
e.printStackTrace();
log.error("IOException", e);
} catch (Exception e) {
log.error("Exception", e);
}finally {
semaphore.release(1);//释放一个资源
}

View File

@ -75,5 +75,8 @@ wx:
#用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket有效期7200秒开发者必须在自己的服务全局缓存jsapi_ticket
accessTokenUrl: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}
file:
upload-dir: /myfikc