一、加入Maven依赖

  1. <dependency>
  2. <groupId>org.csource</groupId>
  3. <artifactId>fastdfs-client-java</artifactId>
  4. <version>1.27-SNAPSHOT</version>
  5. </dependency>

二、客户端代码

  1. @RunWith(SpringRunner.class)
  2. @SpringBootTest
  3. public class GmallManageWebApplicationTests {
  4. @Test
  5. public void contextLoads() throws IOException, MyException {
  6. // 配置fdfs的全局链接地址
  7. String tracker = GmallManageWebApplicationTests.class.getResource("/tracker.conf").getPath();// 获得配置文件的路径
  8. ClientGlobal.init(tracker);
  9. TrackerClient trackerClient = new TrackerClient();
  10. // 获得一个trackerServer的实例
  11. TrackerServer trackerServer = trackerClient.getConnection();
  12. // 通过tracker获得一个Storage链接客户端
  13. StorageClient storageClient = new StorageClient(trackerServer,null);
  14. String[] uploadInfos = storageClient.upload_file("d:/a.jpg", "jpg", null);
  15. String url = "http://192.168.2.128";
  16. for (String uploadInfo : uploadInfos) {
  17. url += "/"+uploadInfo;
  18. //url = url + uploadInfo;
  19. }
  20. System.out.println(url);
  21. }
  22. }

tracker.conf

  1. tracker_server=192.168.2.128:22122
  2. # 连接超时时间,针对socket套接字函数connect,默认为30秒
  3. connect_timeout=30000
  4. # 网络通讯超时时间,默认是60秒
  5. network_timeout=60000

控制台打印:

  1. http://192.168.2.128/group1/M00/00/00/wKgCgF2xkrOANCrrAAxpifD7458779.jpg

此路径在浏览器中访问即可访问我们上传的图片。

工具类

  1. public class PmsUploadUtil {
  2. public static String uploadImage(MultipartFile multipartFile) {
  3. String imgUrl = "http://192.168.2.128";
  4. // 上传图片到服务器
  5. // 配置fdfs的全局链接地址
  6. String tracker = PmsUploadUtil.class.getResource("/tracker.conf").getPath();// 获得配置文件的路径
  7. try {
  8. ClientGlobal.init(tracker);
  9. } catch (Exception e) {
  10. e.printStackTrace();
  11. }
  12. TrackerClient trackerClient = new TrackerClient();
  13. // 获得一个trackerServer的实例
  14. TrackerServer trackerServer = null;
  15. try {
  16. trackerServer = trackerClient.getConnection();
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20. // 通过tracker获得一个Storage链接客户端
  21. StorageClient storageClient = new StorageClient(trackerServer,null);
  22. try {
  23. byte[] bytes = multipartFile.getBytes();// 获得上传的二进制对象
  24. // 获得文件后缀名
  25. String originalFilename = multipartFile.getOriginalFilename();// a.jpg
  26. System.out.println(originalFilename);
  27. int i = originalFilename.lastIndexOf(".");
  28. String extName = originalFilename.substring(i+1);
  29. String[] uploadInfos = storageClient.upload_file(bytes, extName, null);
  30. for (String uploadInfo : uploadInfos) {
  31. imgUrl += "/"+uploadInfo;
  32. }
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. return imgUrl;
  37. }
  38. }

在springmvc文件上传控制器中我们只需要用MultipartFile multipartFile参数去接收就可以了。

Java操作fastDFS的更多相关文章

  1. coding++:java操作 FastDFS(上传 | 下载 | 删除)

    开发工具  IDEAL2017  Springboot 1.5.21.RELEASE --------------------------------------------------------- ...

  2. coding++: java 操作FastDFS(上传 | 下载 | 删除)

    package cn.com.soundrecording.controller; import cn.com.soundrecording.utils.FastDFSClient;import co ...

  3. Java 客户端操作 FastDFS 实现文件上传下载替换删除

    FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...

  4. java连接Fastdfs图片服务器上传失败的解决方法

    照着视频上做,但是却连接不了虚拟机linux上的图片服务器,估计是linux防火墙的问题(这个实在是神烦,前面有好几次连接不了都是因为linux防火墙),果不其然,关闭即可. Linux关闭防火墙的命 ...

  5. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  6. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  7. Java操作Oracle

    public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...

  8. JAVA操作ORACLE数据库的存储过程

    一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...

  9. JAVA操作MongoDB数据库

    1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...

随机推荐

  1. input提示字在有焦点消失或输入改变时消失

    一:获取焦点时 提示字消失 <input type="text" name="textfield" value="这里是提示内容" o ...

  2. Javascript搞笑图,哈哈哈哈

  3. A1136 | 字符串处理、大整数运算

    题目链接: https://www.patest.cn/contests/pat-a-practise/1136 今天是12月17号.最近这几天都有点不在状态.已经整整一周没有练算法了,自从12.3考 ...

  4. KVM原理及使用

    Qemu 和 Qemu-kvm Qemu: http://qemu-project.org/Download Qemu-kvm:https://sourceforge.net/projects/kvm ...

  5. hlt 与 llt 相关

    HLT:HIGH LEVEL TEST,通常指SDV/SIT/SVT等测试活动SDV : system design verification 系统设计验证 SIT : system integrat ...

  6. HashSet Integer输出有序,String输出无序

    1. 背景自己在测试HashSet时,发现其输出Integer是有序的.2. 测试public static void hashSetObjectTest(){ Set<Integer> ...

  7. eureka中显示有服务但是通过ribbon调用显示No instances available for service-hello的问题

    一,问题 采取eureka集群.客户端通过Ribbon调用服务,Ribbon端报下列异常 ? 1 2 3 4 5 6 7 java.net.UnknownHostException: SERVICE- ...

  8. Centos7 守护进程supervisord 安装使用

    pervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它 ...

  9. Unity资源商店 Asset store下载文件夹的位置

    Win10 C:\Users\用户名\AppData\Roaming\Unity\Asset Store-5.x\ Mac OS X ~/Library/Unity/Asset Store

  10. maven本地仓库已经有了所需的jar包,为什么还要去请求远程仓库

    问题 IDEA 中的maven 项目,一个jar包一直导入不进来,reimport 无效.从另一仓库把这个jar包拷贝到当前仓库,还是无效.mvn clean install -e U 发现加载这个j ...