這篇文章主要為大家展示了SpringBoot怎么整合FastDFS,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
創(chuàng)新互聯(lián)是一家專業(yè)提供東至企業(yè)網站建設,專注與網站制作、網站設計、HTML5、小程序制作等業(yè)務。10年已為東至眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站設計公司優(yōu)惠進行中。
一.pom.xml
<?xml version="1.0" encoding="UTF-8"?>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 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和10MB,可能不夠用,具體參考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 文件字節(jié) * @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
Insert title here 文件上傳
七.開始上傳
最后在頁面上返回一個URL,可以直接訪問
以上就是關于SpringBoot怎么整合FastDFS的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。