提交下下
This commit is contained in:
parent
02db2636b6
commit
44616028b2
12
pom.xml
12
pom.xml
|
@ -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&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Hongkong&useSSL=false&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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);//释放一个资源
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue