如何在Java项目中利用FasfDFS实现一个文件上传下载功能

  介绍

本篇文章给大家分享的是有关如何在Java项目中利用FasfDFS实现一个文件上传下载功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>一:添加配置文件

当完成以上操作之后可以添加链接FastDFS服务器的配置文件fastdfs-client。属性

fastdfs.connect_timeout_in_seconds =5   fastdfs.network_timeout_in_seconds =30   fastdfs.charset =, utf - 8   fastdfs.http_anti_steal_token =false   fastdfs.http_secret_key =FastDFS1234567890   fastdfs.http_tracker_http_port =80   时间=fastdfs.tracker_servers  192.168.1.7:22122

因为项目中只使用属性格式文件,如果需要更多的配置信息,可以查看官方的配置信息

注:1。其他的配置项为可选,fastdfs。tracker_servers为必须选项

,,,,2. 多个tracker_servers可以使用逗号”、“分隔

<强>二:加载配置文件

1。测试加载配置文件

@Test   public  void  initConifg (), throws  Exception  {   ,//加载配置文件,   ,ClientGlobal.initByProperties(“配置/fastdfs-client.properties");,,,,,,,   ,System.out.println (“ClientGlobal.configInfo ():“, +, ClientGlobal.configInfo ());   }

2。输出结果

ClientGlobal.configInfo (): {   ,g_connect_timeout (ms),=5000   ,g_network_timeout (ms),=30000   g_charset =, utf - 8   ,g_anti_steal_token =false=,g_secret_key  FastDFS1234567890   g_tracker_http_port =, 80=,trackerServers  192.168.1.7:22122   }

当出现上面和配置文件一致的输出结果时候,说明加载配置文件已经成功。

<强>三:功能实现

由于是使用Junit做测试,为了方便在开始执行之前,初始化配置文件和获取连接,同时没有捕获异常全部抛出

<强> 1。初始化连接信息

//成员变量   TrackerServer  TrackerServer =,空;   StorageServer  StorageServer =,空;   StorageClient  StorageClient =,空;/* *   ,*初始化连接信息   ,* @author: wrh55   ,* @date:, 2017年8月5日下午8:08:57   ,*/@Before   public  void  init (), throws  Exception  {//,才能加载配置文件   ClientGlobal.initByProperties才能(“配置/fastdfs-client.properties");//,才能获取连接   TrackerClient 才能;TrackerClient =, new  TrackerClient ();   时间=trackerServer 才能;trackerClient.getConnection ();   时间=storageClient 才能;new  StorageClient (storageServer trackerServer也);   }

注:,如果出现连接超时异常:java.net.SocketTimeoutException:连接超时

,,,,1 .查看服务器地址和端口是否正确

,,,,2 .请查看服务器TrackerServer和StorageServer服务端口是否开启。默认为22122年和23000年

<强> 2。上传文件

/* *   ,*上传图片   ,* @throws 例外   ,* @author: wrh55   ,* @date:, 2017年8月5日下午7:09:23   ,*/@Test   public  void  uploadFileOfByte (), throws  Exception  {   ,//获取文件字节信息=,,file  new 文件(“src/测试/资源/图片/Ace.jpg");   ,FileInputStream  inputStream =, new  FileInputStream(文件);   ,byte [], file_buff =, new 字节((int), file.length ());   ,read (file_buff);   ,//获取文件扩展名   ,String  fileName =, file.getName ();   ,String  extName =,空;   ,if  (fileName.contains (“!”)), {   时间=extName 才能;fileName.substring (fileName.lastIndexOf (“!”), +, 1);   ,}else  {   返回才能;   ,}   ,//图片元数据,如果设置为空,那么服务器上不会生成- m的原数据文件   ,NameValuePair [], meta_list =, new  NameValuePair [2];   ,meta_list [0],=, new  NameValuePair (“fileName",,“测试专用“);   ,meta_list [1],=, new  NameValuePair (“length",,“测试专用“);   ,//文件上传,返回组名和访问地址   ,String [] upload_file =, storageClient.upload_file (file_buff, extName,, meta_list);   ,System.out.println (arrays . aslist (upload_file));   }

下面是执行结果

如何在Java项目中利用FasfDFS实现一个文件上传下载功能

已经将图片上传到服务器,同时返回了图片地址。那么通过这个地址试试能否访问

如何在Java项目中利用FasfDFS实现一个文件上传下载功能