21xrx.com
2024-11-26 11:31:12 Tuesday
登录
文章检索 我的文章 写文章
到fastdfs平台的实现
2023-06-10 20:48:11 深夜i     --     --

最近我正在使用java编写一个项目,其中需要实现上传文件到fastdfs平台的功能。经过一番学习和摸索,终于成功地实现了这一功能。

首先,我们需要引入fastdfs-client-java这个jar包,然后在项目中进行配置,包括tracker服务器和storage服务器的地址及端口号等信息。接着,在实现上传功能的代码中,我们需要使用 FastDFSClient 这个类提供的 "uploadFile" 方法来实现文件上传。这个方法接收两个参数,第一个参数是文件的字节数组,第二个参数是文件的后缀名。

下面是我的代码实现:


import org.csource.fastdfs.*;

import java.io.IOException;

import java.io.InputStream;

public class FastDFSUtil {

  private static TrackerClient trackerClient;

  static {

    try {

      ClientGlobal.init("storage.conf");

      TrackerClient trackerClient = new TrackerClient();

      FastDFSUtil.trackerClient = trackerClient;

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

  public static String uploadFile(InputStream is, String fileName) throws Exception {

    byte[] fileBuff = null;

    int len = 0;

    if(is != null){

      len = is.available();

      fileBuff = new byte[is.available()];

    }

    is.read(fileBuff);

    String extName = "";

    if(fileName.contains(".")){

      extName = fileName.substring(fileName.lastIndexOf(".") + 1);

    }else

      extName = "png";

    

    TrackerServer trackerServer = trackerClient.getConnection();

    StorageServer storageServer = null;

    StorageClient1 storageClient1 = new StorageClient1(trackerServer, storageServer);

    String fileId = storageClient1.upload_file1(fileBuff, extName, null);

    return fileId;

  }

  public static void main(String[] args) {

    try {

      InputStream is = new FileInputStream(new File("C:\\Users\\cn\\Desktop\\test.png"));

      FastDFSUtil.uploadFile(is, "test.png");

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

}

在这个代码中,我先通过ClientGlobal.init方法初始化了配置文件,然后在上传文件方法中,使用StorageClient1上传文件到fastdfs服务器上。在这里,我将文件的后缀名设置为了 "png"。

综上所述,通过引入fastdfs-client-java这个jar包和对FastDFSClient类进行调用,我们可以在java项目中方便快捷地实现上传文件到fastdfs平台的功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复