zoukankan      html  css  js  c++  java
  • Java操作fastDFS

    一、加入Maven依赖

            <dependency>
                <groupId>org.csource</groupId>
                <artifactId>fastdfs-client-java</artifactId>
                <version>1.27-SNAPSHOT</version>
            </dependency>
    

    二、客户端代码

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

  • 相关阅读:
    Spring MVC 迁移项目搭建运行
    linux 安装 nginx
    linux 安装 redis
    linux 安装 jdk
    存储过程之游标插入数据
    存储过程之基础语法
    AES加密解密,自定义加密规则记录
    idea破解记录
    Mysql-explain之Using temporary和Using filesort解决方案
    C#多线程学习笔记(朝夕eleven) Task启动方式、Task阻塞、Task.Delay()、多线程异常处理、任务取消、多线程的临时变量、共享数据的lock、Task返回值
  • 原文地址:https://www.cnblogs.com/heliusKing/p/11734598.html
Copyright © 2011-2022 走看看