一、加入Maven依賴
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27-SNAPSHOT</version>
</dependency>
二、客戶端代碼
@RunWith(SpringRunner.class)
@SpringBootTest
public class GmallManageWebApplicationTests {
@Test
public void contextLoads() throws IOException, MyException {
// 配置fdfs的全局鏈接地址
String tracker = GmallManageWebApplicationTests.class.getResource("/tracker.conf").getPath();// 獲得配置文件的路徑
ClientGlobal.init(tracker);
TrackerClient trackerClient = new TrackerClient();
// 獲得一個trackerServer的實例
TrackerServer trackerServer = trackerClient.getConnection();
// 通過tracker獲得一個Storage鏈接客戶端
StorageClient storageClient = new StorageClient(trackerServer,null);
String[] uploadInfos = storageClient.upload_file("d:/a.jpg", "jpg", null);
String url = "http://192.168.2.128";
for (String uploadInfo : uploadInfos) {
url += "/"+uploadInfo;
//url = url + uploadInfo;
}
System.out.println(url);
}
}
tracker.conf
tracker_server=192.168.2.128:22122
# 連接超時時間,針對socket套接字函數connect,默認為30秒
connect_timeout=30000
# 網絡通訊超時時間,默認是60秒
network_timeout=60000
控制台打印:
http://192.168.2.128/group1/M00/00/00/wKgCgF2xkrOANCrrAAxpifD7458779.jpg
此路徑在瀏覽器中訪問即可訪問我們上傳的圖片。
工具類
public class PmsUploadUtil {
public static String uploadImage(MultipartFile multipartFile) {
String imgUrl = "http://192.168.2.128";
// 上傳圖片到服務器
// 配置fdfs的全局鏈接地址
String tracker = PmsUploadUtil.class.getResource("/tracker.conf").getPath();// 獲得配置文件的路徑
try {
ClientGlobal.init(tracker);
} catch (Exception e) {
e.printStackTrace();
}
TrackerClient trackerClient = new TrackerClient();
// 獲得一個trackerServer的實例
TrackerServer trackerServer = null;
try {
trackerServer = trackerClient.getConnection();
} catch (IOException e) {
e.printStackTrace();
}
// 通過tracker獲得一個Storage鏈接客戶端
StorageClient storageClient = new StorageClient(trackerServer,null);
try {
byte[] bytes = multipartFile.getBytes();// 獲得上傳的二進制對象
// 獲得文件后綴名
String originalFilename = multipartFile.getOriginalFilename();// a.jpg
System.out.println(originalFilename);
int i = originalFilename.lastIndexOf(".");
String extName = originalFilename.substring(i+1);
String[] uploadInfos = storageClient.upload_file(bytes, extName, null);
for (String uploadInfo : uploadInfos) {
imgUrl += "/"+uploadInfo;
}
} catch (Exception e) {
e.printStackTrace();
}
return imgUrl;
}
}
在springmvc文件上傳控制器中我們只需要用MultipartFile multipartFile
參數去接收就可以了。