日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot集成FastDFS依賴實現文件上傳的示例

瀏覽:269日期:2023-03-11 18:47:46
前言

對FastDFS文件系統安裝后的使用。

FastDFS的安裝請參考這篇:Docker中搭建FastDFS文件系統(多圖)

本文環境:IDEA + JDK1.8 + Maven

本文項目代碼:fastdfs_jb51.rar

1、引入依賴

簡單說一下這個依賴部分,目前大部分都是采用的如下依賴:

<!-- https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs-client-java --><dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0</version></dependency>

本著不重復造輪子,且為了使用方便我們可以去GitHub找一個集成好的依賴:

https://github.com/tobato/FastDFS_Client

<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.27.2</version></dependency>2、將Fdfs配置引入項目

只需要創建一個配置類就可以了:

@Configuration@Import(FdfsClientConfig.class)@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)public class ComponetImport { // 導入依賴組件}

參考截圖:

SpringBoot集成FastDFS依賴實現文件上傳的示例

3、在application.yml當中配置Fdfs相關參數

根據自己情況修改相應ip地址及端口號:

server: port: 8080ip: 10.211.55.4 # 根據自己FastDFS服務器修改fdfs: so-timeout: 1501 connect-timeout: 601 thumb-image: #縮略圖生成參數 width: 150 height: 150 tracker-list: #TrackerList參數,支持多個 - 10.211.55.4:22122 web-server-url: http://${ip}:8888/4、client封裝工具類

創建FastDFSClient.java包裝工具類,方便后面使用:

import com.github.tobato.fastdfs.domain.conn.FdfsWebServer;import com.github.tobato.fastdfs.domain.fdfs.StorePath;import com.github.tobato.fastdfs.domain.proto.storage.DownloadByteArray;import com.github.tobato.fastdfs.exception.FdfsUnsupportStorePathException;import com.github.tobato.fastdfs.service.FastFileStorageClient;import org.apache.commons.io.FilenameUtils;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.charset.Charset;@Componentpublic class FastDFSClient { @Autowired private FastFileStorageClient storageClient; @Autowired private FdfsWebServer fdfsWebServer; /** * 上傳文件 * @param file 文件對象 * @return 文件訪問地址 * @throws IOException */ public String uploadFile(MultipartFile file) throws IOException {StorePath storePath = storageClient.uploadFile(file.getInputStream(),file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()),null);return getResAccessUrl(storePath); } /** * 上傳文件 * @param file 文件對象 * @return 文件訪問地址 * @throws IOException */ public String uploadFile(File file) throws IOException {FileInputStream inputStream = new FileInputStream (file);StorePath storePath = storageClient.uploadFile(inputStream,file.length(), FilenameUtils.getExtension(file.getName()),null);return getResAccessUrl(storePath); } /** * 將一段字符串生成一個文件上傳 * @param content 文件內容 * @param fileExtension * @return */ public String uploadFile(String content, String fileExtension) {byte[] buff = content.getBytes(Charset.forName('UTF-8'));ByteArrayInputStream stream = new ByteArrayInputStream(buff);StorePath storePath = storageClient.uploadFile(stream,buff.length, fileExtension,null);return getResAccessUrl(storePath); } /** * 封裝圖片完整URL地址 */ private String getResAccessUrl(StorePath storePath) {String fileUrl = fdfsWebServer.getWebServerUrl() + storePath.getFullPath();return fileUrl; } /** * 刪除文件 * @param fileUrl 文件訪問地址 * @return */ public void deleteFile(String fileUrl) {if (StringUtils.isEmpty(fileUrl)) { return;}try { StorePath storePath = StorePath.parseFromUrl(fileUrl); storageClient.deleteFile(storePath.getGroup(), storePath.getPath());} catch (FdfsUnsupportStorePathException e) { System.out.println(e.getMessage()); /** TODO 只是測試,所以未使用,logger,正式環境請修改打印方式 **/} } /** * 下載文件 * * @param fileUrl 文件URL * @return 文件字節 * @throws IOException */ public byte[] downloadFile(String fileUrl) throws IOException {String group = fileUrl.substring(0, fileUrl.indexOf('/'));String path = fileUrl.substring(fileUrl.indexOf('/') + 1);DownloadByteArray downloadByteArray = new DownloadByteArray();byte[] bytes = storageClient.downloadFile(group, path, downloadByteArray);return bytes; }}5、創建Conttoler測試類5.1 文件上傳測試

@RestController@RequestMapping('/file')public class FileUploadController { @Autowired private FastDFSClient fastDFSClient; /** * 上傳 * @param file * @return * @throws IOException */ @RequestMapping('/upload') public String uploadFile(MultipartFile file) throws IOException {return fastDFSClient.uploadFile(file); }}

執行效果截圖:

SpringBoot集成FastDFS依賴實現文件上傳的示例

5.2、下載文件測試

@RestController@RequestMapping('/file')public class FileUploadController { @Autowired private FastDFSClient fastDFSClient; /** * 下載 * @param fileUrl * @param response * @throws IOException */ @RequestMapping('/download') public void downloadFile(String fileUrl, HttpServletResponse response) throws IOException {byte[] bytes = fastDFSClient.downloadFile(fileUrl);/** TODO 這里只是為了整合fastdfs,所以寫死了文件格式。需要在上傳的時候保存文件名。下載的時候使用對應的格式 **/response.setHeader('Content-disposition', 'attachment;filename=' + URLEncoder.encode('sb.xlsx', 'UTF-8'));response.setCharacterEncoding('UTF-8');ServletOutputStream outputStream = null;try { outputStream = response.getOutputStream(); outputStream.write(bytes);} catch (IOException e) { e.printStackTrace();} finally { try {outputStream.flush();outputStream.close(); } catch (IOException e) {e.printStackTrace(); }} }}

測試下載路徑:

http://127.0.0.1:8080/file/download?fileUrl=group1/M00/00/00/CtM3BF84r4SAEPDgAABoGL78QcY682.jpg

拼接的參數為:group1/M00/00/00/CtM3BF84r4SAEPDgAABoGL78QcY682.jpg

大家想修改路徑的話,需要同步修改 downloadFile() 方法里的分隔方式。

SpringBoot集成FastDFS依賴實現文件上傳的示例

到此這篇關于SpringBoot集成FastDFS依賴實現文件上傳的示例的文章就介紹到這了,更多相關SpringBoot FastDFS文件上傳內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品日本欧美一区二区三区| 蜜臀av在线播放一区二区三区| 99riav国产精品| 欧美精品九九| 黄色国产精品| 久久国产中文字幕| 精品中文字幕一区二区三区av| 美女毛片一区二区三区四区| 欧洲毛片在线视频免费观看| 久久久五月天| 国产精品av久久久久久麻豆网| 99免费精品| 蜜臀久久99精品久久久久宅男 | 国产福利一区二区三区在线播放| 欧美一级久久| 国产精品资源| 久久九九99| 美女精品一区| 国产福利亚洲| 免费视频亚洲| 国产欧美亚洲精品a| 99久久99久久精品国产片果冰| 日韩精品一区第一页| 欧美精品影院| 国产一区日韩欧美| 日本强好片久久久久久aaa| 日本在线啊啊| 亚洲少妇自拍| 麻豆精品久久久| av成人国产| 日韩精品中文字幕第1页| 首页欧美精品中文字幕| 美女视频免费精品| 丝袜美腿高跟呻吟高潮一区| 亚洲bt欧美bt精品777| 桃色av一区二区| 欧美一级网址| 欧美午夜不卡| zzzwww在线看片免费| 日韩在线一区二区| 日韩欧美1区| 久久久国产精品网站| 99国产精品| 99久久夜色精品国产亚洲狼 | 欧美日一区二区在线观看| 久久久成人网| 精品国产网站| 国产欧美午夜| 97成人在线| 日韩精品免费观看视频| 香蕉视频成人在线观看| 欧美性感美女一区二区| 色黄视频在线观看| 久久免费精品| 久久精品三级| 精品久久福利| 91精品丝袜国产高跟在线| 综合一区二区三区| 一区二区三区网站| 亚洲伊人影院| 日韩中文字幕不卡| 亚洲一区区二区| 九九色在线视频| 91精品婷婷色在线观看| 日韩欧美精品一区| 日韩不卡免费高清视频| 日韩av福利| 国产一区视频在线观看免费| 欧美日韩激情在线一区二区三区| 亚洲国产日韩欧美在线| 麻豆久久精品| 免费在线视频一区| 热久久久久久| 麻豆国产精品| 韩国精品主播一区二区在线观看 | 亚洲精品国产嫩草在线观看 | 国产专区精品| 激情丁香综合| 日韩制服丝袜先锋影音| 欧美视频久久| 韩国女主播一区二区三区| 国产一区二区三区四区五区传媒| 日韩在线观看不卡| 99热免费精品| 国产精品入口久久| 日韩电影免费网址| 亚洲精品黄色| 9999国产精品| 日韩在线观看一区二区| 狠狠久久伊人| 日本成人手机在线| 久久天堂成人| 国产精品中文| 亚洲一级影院| 久久av偷拍| 精品在线99| 麻豆精品新av中文字幕| 日韩一区二区免费看| 美日韩一区二区三区| 久久国产欧美| 美女精品视频在线| 亚洲一区二区日韩| 亚洲v在线看| 欧美国产不卡| 男人天堂欧美日韩| 久久久噜噜噜| 精品一区二区三区四区五区| 爽好久久久欧美精品| 欧美国产偷国产精品三区| 91亚洲精品视频在线观看| 久久精品成人| 麻豆91在线播放| 日本久久一区| 蜜臀久久99精品久久久久宅男 | 7m精品国产导航在线| 欧美成人午夜| 久久精品导航| 国产资源在线观看入口av| 国产精品麻豆成人av电影艾秋| 国产亚洲在线| 亚洲午夜精品久久久久久app| 久久精品97| 日本三级亚洲精品| 亚洲精品免费观看| 亚洲一区欧美激情| 日韩亚洲国产欧美| 尤物在线精品| 不卡一区2区| 99在线观看免费视频精品观看| 亚洲午夜黄色| 久久亚洲国产| 在线国产一区二区| 一区久久精品| 中文字幕中文字幕精品| 亚洲69av| 日韩av影院| 亚洲精品国产日韩| 日韩精品一区二区三区中文| 91欧美极品| 你懂的国产精品| 激情黄产视频在线免费观看| 国产成人精品亚洲线观看| 国产不卡人人| 国产精品日本| 九九精品调教| 香蕉久久久久久久av网站| 一区二区电影| 欧美视频一区| 女生影院久久| 石原莉奈在线亚洲二区| 欧美伊人影院| 久久精品系列| 久久久久久久久丰满| 久久国产精品毛片| 国产欧美日韩视频在线| 亚洲天堂资源| 视频一区欧美日韩| 精品视频高潮| 亚洲一级在线| 国产一区二区三区国产精品| 国产一区亚洲| 久久精品国产网站| 美女毛片一区二区三区四区| 日本va欧美va精品| 亚洲精品.com| 欧美一区=区三区| 国产精品二区不卡| 视频一区二区国产| 成人亚洲欧美| 日本91福利区| 国产亚洲亚洲| 婷婷综合六月| 欧美欧美黄在线二区| 亚洲一区二区三区高清不卡| 国内在线观看一区二区三区| 亚洲精品美女91| 在线视频日韩| 日韩专区精品| 精品女同一区二区三区在线观看| 免费观看在线色综合| 成人国产精品| 日韩一区二区三区精品视频第3页| 狠狠操综合网| 久久精品成人| 国产一区二区三区黄网站| 日本99精品| 日韩在线黄色| 视频一区视频二区在线观看| 日本少妇一区| 都市激情国产精品| 国产精品手机在线播放| 日本综合精品一区| 中文字幕亚洲影视| 日韩欧美一区二区三区免费观看| 麻豆中文一区二区| 国产极品模特精品一二| 中文字幕一区二区av| 中文字幕一区二区三区四区久久 | 最新亚洲国产| 亚洲黄色影院|