用于fastdfs 没有在中心仓库中提供获取的依赖坐标。
只能自己通过源码方式编译,打好jar 包,安装到本地仓库。
官方仓库地址
https://github.com/happyfish100/fastdfs-client-java
上传工具类
package com.atguigu.gmall.manage.util;
import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
public class PmsUploadUtil {
public static String uploadImage(MultipartFile multipartFile) {
String imgUrl = "http://192.168.125.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;
}
}