Commit 12a7410d by zhouxiao

添加指掌纹文件上传功能

parent 8b9a1faf
#?\u5B9E\u4F53bean\u76EE\u5F55
mybatis.type-aliases-package=com.finger.domain
#?\u6307\u5B9Asql\u6620\u5C04\u6587\u4EF6
mybatis.mapperLocations=classpath:mapper/*.xml
mybatis.mapperLocations=classpath*:mybatis/fingerconfig/*.xml
#\u6570\u636E\u6E90\u914D\u7F6E
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
......
......@@ -123,6 +123,20 @@
<scope>system</scope>
<systemPath>${project.basedir}/lib/dom4j-1.6.1.jar</systemPath>
</dependency>
<!-- lombok start -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<!-- lombok end -->
<dependency>
<groupId>cn.novelweb</groupId>
<artifactId>tool-all</artifactId>
<version>1.3.16</version>
</dependency>
</dependencies>
<build>
......
package com.finger.controller;
import com.common.buildFingerUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
/**
* Created by founder on 2021/8/20.
*/
@Controller
public class dealFingerImgConfig {
@RequestMapping("test4")
@ResponseBody
public String querytest(){
return "success2";
}
@RequestMapping("dealImgStr")
@ResponseBody
public String ImgStrToModelStr(HttpServletRequest request){
String str="";
String rollimgstr = request.getParameter("rollimgstr");
String plaimimgstr = request.getParameter("plaimimgstr");
if(!"".equals(rollimgstr) && rollimgstr != null && !"null".equals(rollimgstr)) {
str = buildFingerUtil.Sbase2Tbase64str(rollimgstr);
}
if(!"".equals(plaimimgstr) && plaimimgstr != null && !"null".equals(plaimimgstr)) {
str = buildFingerUtil.Sbase2Tbase64str(plaimimgstr);;
}
return str;
}
}
package com.finger.controller;
import com.common.buildFingerUtil;
import com.finger.domain.collectInfoMsg;
import com.finger.domain.descriptiveMsg;
import com.finger.domain.fingerImageMsg;
......@@ -14,10 +15,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* Created by zhouxiao on 2021/7/2.
......@@ -27,16 +25,13 @@ public class fingerImgController {
@Autowired
public fingerImgService fingerImgService;
@RequestMapping("test")
@ResponseBody
public String querytest(){
return "success";
}
@RequestMapping("test1")
@ResponseBody
public String querytest1(){
return "终于成功了";
}
@RequestMapping("saveFingerImg")
@ResponseBody
public String saveFingerImg(HttpServletRequest request){
......@@ -191,4 +186,5 @@ public class fingerImgController {
Object[] os = JSONArray.fromObject(listos).toArray();
return os;
}
}
package com.uploader.controller;
import cn.hutool.crypto.SecureUtil;
import cn.novelweb.tool.http.Result;
import cn.novelweb.tool.upload.file.FileInfo;
import cn.novelweb.tool.upload.local.LocalUpload;
import cn.novelweb.tool.upload.local.pojo.UploadFileParam;
import com.alibaba.fastjson.JSONArray;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* @program: toolupload
* @description: 本地上传文件、妙传、断点续传样例-demo
* @author: Dai Yuanchuan
* @create: 2019-10-30 08:24
**/
@CrossOrigin
@RestController
@Slf4j
@RequestMapping(value = "/uploader")
public class UploadDemoController {
private static Logger log = LoggerFactory.getLogger(UploadDemoController.class);
static {
// 修改文件上传的默认路径(如果需要用到的话)
UploadDemoController uc = new UploadDemoController();
LocalUpload.defaultPath = uc.getuploadpath();
}
@SneakyThrows
@RequestMapping(value = "slicing-upload", method = RequestMethod.GET)
public synchronized Result<JSONArray> checkSlicingUploader(UploadParam param) throws Exception {
return LocalUpload.checkFileMd5(param.getIdentifier(), param.getFilename());
}
@SneakyThrows
@ApiOperation(value = "文件上传", notes = "参数:文件[<span style=\"color: red;\">大文件请获取上传token直接对接到七牛云服务器</span>]")
@PostMapping(value = "slicing-upload", consumes = "multipart/*", headers = "content-type=multipart/form-data", produces = "application/json;charset=UTF-8")
public synchronized Result<FileInfo> slicingUploader(UploadParam param, HttpServletRequest request) throws Exception {
String md5 = SecureUtil.md5(param.getFilename());
System.out.println("md5===="+md5);
System.out.println("LocalUpload.defaultPath===="+LocalUpload.defaultPath);
System.out.println("File.separatorChar===="+File.separatorChar);
System.out.println("param.getFilename()===="+param.getFilename());
File file = new File(LocalUpload.defaultPath + File.separatorChar + md5 + File.separatorChar + param.getFilename());
if (file.exists()) {
return Result.ok();
}
UploadFileParam uploadFileParam = UploadFileParam.builder()
.id(param.getIdentifier())
.chunks(param.getTotalChunks())
.chunk(param.getChunkNumber() - 1)
.size(param.getCurrentChunkSize())
.name(param.getFilename())
.file(param.getFile())
.md5(md5)
.build();
return LocalUpload.fragmentFileUploader(uploadFileParam, param.getChunkSize(), request);
}
public String getuploadpath(){
Properties properties = new Properties();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("founder_zwcj.properties");
try {
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
String basePath = properties.getProperty("uploadfiles");
return basePath;
}
}
package com.uploader.controller;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>分片上传参数</p>
* <p>2021-02-02 10:27</p>
*
* @author Dan
**/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
@ApiModel(value = "分片上传参数")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UploadParam {
@ApiModelProperty(value = "当前块的次序,第一个块是 1,注意不是从 0 开始的")
private Integer chunkNumber;
@ApiModelProperty(value = "分块大小,根据 totalSize 和这个值你就可以计算出总共的块数。注意最后一块的大小可能会比这个要大")
private Long chunkSize;
@ApiModelProperty(value = "当前块的大小,实际大小")
private Integer currentChunkSize;
@ApiModelProperty(value = "文件总大小。")
private Long totalSize;
@ApiModelProperty(value = "每个文件的唯一标示")
private String identifier;
@ApiModelProperty(value = "文件名")
private String filename;
@ApiModelProperty(value = "文件夹上传的时候文件的相对路径属性(如果上传的是文件夹)")
private String relativePath;
@ApiModelProperty(value = "文件被分成块的总数")
private Integer totalChunks;
@ApiModelProperty(value = "当前文件的分片对象", required = true)
private MultipartFile file;
public Integer getChunkNumber() {
return chunkNumber;
}
public void setChunkNumber(Integer chunkNumber) {
this.chunkNumber = chunkNumber;
}
public Long getChunkSize() {
return chunkSize;
}
public void setChunkSize(Long chunkSize) {
this.chunkSize = chunkSize;
}
public Integer getCurrentChunkSize() {
return currentChunkSize;
}
public void setCurrentChunkSize(Integer currentChunkSize) {
this.currentChunkSize = currentChunkSize;
}
public Long getTotalSize() {
return totalSize;
}
public void setTotalSize(Long totalSize) {
this.totalSize = totalSize;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getRelativePath() {
return relativePath;
}
public void setRelativePath(String relativePath) {
this.relativePath = relativePath;
}
public Integer getTotalChunks() {
return totalChunks;
}
public void setTotalChunks(Integer totalChunks) {
this.totalChunks = totalChunks;
}
public MultipartFile getFile() {
return file;
}
public void setFile(MultipartFile file) {
this.file = file;
}
}
server.port=9003
#?\u5B9E\u4F53bean\u76EE\u5F55
mybatis.type-aliases-package=com.finger.domain
#?\u6307\u5B9Asql\u6620\u5C04\u6587\u4EF6
......@@ -10,3 +11,7 @@ spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.test-while-idle=true
# \u8BBE\u7F6E\u6587\u4EF6\u4E0A\u4F20\u5927\u5C0F
spring.servlet.multipart.max-file-size = 20MB
spring.servlet.multipart.max-request-size = 20MB
\ No newline at end of file
path =F://test//xzzw
xmlpath=F://test//xzzwb
uploadfiles=F://test//files
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment