1、通过git下载fastdfs的客户端
https://github.com/happyfish100/fastdfs-client-java
或者用我下载好的
点击跳转到fastdfs下载页面
(下载所需积分/C币:0,但是csdn总会自动修改下载积分,如果不是0可以联系)
2、将fastdfs的客户端打包到本地maven仓库中
1)把将fastdfs的客户端拷贝到你的项目
2)导入maven
转成maven后图标就变了
3)安装到本地仓库
右边maven也有了这个项目,刷新后install
3、将fastdfs整合到pom中
1)在需要使用fastdfs的工程中引入依赖
4、测试
GmallManagerWebApplicationTests
package com.atguigu.gmall.manager;
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.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.IOException;
@RunWith(SpringRunner.class)
@SpringBootTest
public class GmallManagerWebApplicationTests {
@Test
public void contextLoads() throws IOException, MyException {
// 配置fdfs的全局链接地址
String tracker = GmallManagerWebApplicationTests.class.getResource("/tracker.conf").getPath();// 获得配置文件的路径
ClientGlobal.init(tracker);
TrackerClient trackerClient = new TrackerClient();
// 获得一个trackerServer的实例
TrackerServer trackerServer = trackerClient.getTrackerServer();
// 通过tracker获得一个Storage链接客户端
StorageClient storageClient = new StorageClient(trackerServer,null);
String[] uploadInfos = storageClient.upload_file("d:/a.jpg", "jpg", null);
String url = "http://192.168.25.133";
for (String uploadInfo : uploadInfos) {
url += "/"+uploadInfo;
//url = url + uploadInfo;
}
System.out.println(url);
}
}
运行后打印出拼接好的路径
5、实现
controller层代码
@RequestMapping("fileUpload")
@ResponseBody
public String saveSpuInfo(@RequestParam("file") MultipartFile multipartFile){
//将图片或者音频上传到分布式的文件存储系统
//将图片的存储路径返回给页面
String imgUrl = PmsUploadUtil.uploadImage(multipartFile);
System.out.println(imgUrl);
return imgUrl;
}
PmsUploadUtil工具类
package com.atguigu.gmall.utils;
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.25.133";
//上传图片到服务器
// 配置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.getTrackerServer();
} catch (IOException e) {
e.printStackTrace();
}
// 通过tracker获得一个Storage链接客户端
StorageClient storageClient = new StorageClient(trackerServer,null);
String[] uploadInfos = new String[0];
try {
byte[] bytes = multipartFile.getBytes(); //获得上传的二进制对象
//根据文件名称截取文件后缀名
String originalFilename = multipartFile.getOriginalFilename();
System.out.println(originalFilename);
//最后一个点的位置
int i = originalFilename.lastIndexOf(".");
String extName = originalFilename.substring(i + 1);
uploadInfos = storageClient.upload_file(bytes, extName, null);
for (String uploadInfo : uploadInfos) {
imgUrl += "/"+uploadInfo;
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(imgUrl);
return imgUrl;
}
}