SpringBoot整合FastDFS方法过程详解

网友投稿 286 2022-12-07


SpringBoot整合FastDFS方法过程详解

一.pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.2.6.RELEASE

com.wj

fastdsf-boot

0.0.1-SNAPSHOT

fastdsf-boot

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-thymeleaf

com.github.tobato

fastdfs-client

1.26.2

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

http:// junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.2.6.RELEASE

com.wj

fastdsf-boot

0.0.1-SNAPSHOT

fastdsf-boot

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-thymeleaf

com.github.tobato

fastdfs-client

1.26.2

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

http:// junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

二.application.yml

#fastdfs 配置

fdfs:

so-timeout: 150000

connect-timeout: 150000 #超时时间

thumb-image:

width: 150

height: 150

tracker-list:

- 111.111.111.111:22122 #ip:端口号

spring:

thymeleaf:

prefix: classpath:/templates/

servlet:

multipart:

max-file-size: 50MB #单次单个文件最大大小

max-request-size: 50MB #单次上传所有文件的总大小
  #注意,这里springboot默认配置的大小是1MB和10Mhttp://B,可能不够用,具体参考MultipartProperties.java

三.FastUtil.java 前提先将Nginx和FastDFS整合

@Component

public class FastUtil {

private final Logger logger = LoggerFactory.getLogger(FastUtil.class);

@Autowired

private FastFileStorageClient fastFileStorageClient;

/**

* 文件上传

* 最后返回fastDFS中的文件名称;

*

* @param bytes 文件字节

* @param fileSize 文件大小

* @param extension 文件扩展名

* @return fastDfs路径

*/

public String uploadFile(byte[] bytes, long fileSize, String extension) {

ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);

StorePath storePath = fastFileStorageClient.uploadFile(byteArrayInputStream, fileSize, extension, null);

return "http://111.111.111.111/"+storePath.getFullPath();

}

public byte[] downloadFile(String group,String path) throws IOException {

DownloadByteArray downloadByteArray = new DownloadByteArray();

byte[] bytes = fastFileStorageClient.downloadFile(group, path, downloadByteArray);

return bytes;

}

}

四.配置类 FdfsConfig.java

@Configuration

@Import(FdfsClientConfig.class)

@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)

public class FdfsConfig {

}

五.Controller

@RestController

public class FdfsController {

@Autowired

private FastUtil fastDFSClientWrapper;

private final Logger logger = LoggerFactory.getLogger(FdfsController.class);

@PostMapping("/upload")

@ResponseBody

public String upload(MultipartFile file) throws Exception {

byte[] bytes = new byte[0];

try {

bytes = file.getBytes();

} catch (IOException e) {

logger.error("获取文件错误");

e.printStackTrace();

}

//获取源文件名称

String originalFileName = file.getOriginalFilename();

//获取文件后缀--.doc

String extension = originalFileName.substring(originalFileName.lastIndexOf(".") + 1);

String fileName = file.getName();

//获取文件大小

long fileSize = file.getSize();

System.out.println(originalFileName + "==" + fileName + "==" + fileSize + "==" + extension + "==" + bytes.length);

String string = fastDFSClientWrapper.uploadFile(bytes, fileSize, extension);

return string;

}

}

六.前端页面 index.html

xmlns:sec="http://thymeleaf.org/thymeleaf-extras-saRRMbuOfuPpringsecurity3">

选择文件:

七.开始上传

最后在页面上返回一个URL,可以直接访问


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:VsCode搭建Spring Boot项目并进行创建、运行、调试
下一篇:Springboot项目使用Slf4j将日志保存到本地目录的实现代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~