java使用fastdfs_Java操作fastDFS

本文详细介绍了如何在Java中使用FastDFS进行文件上传。首先,文章提及了添加Maven依赖`fastdfs-client-java`,然后展示了客户端代码示例,包括配置tracker服务器地址、建立连接、上传文件并获取文件URL。最后,提供了一个工具类`PmsUploadUtil`用于简化文件上传操作,并在Spring MVC控制器中使用`MultipartFile`接收上传文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、加入Maven依赖

org.csource

fastdfs-client-java

1.27-SNAPSHOT

二、客户端代码

@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参数去接收就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值