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

  • 相关阅读:
    关于前端输入框的限制和有效值
    js,jquery转json的几种方法
    java,js,jstl,EL的简单交互
    mysql字段冲突报错
    js的一些压缩和优化性能
    一个不错的html素材网站
    redis之数据操作详解
    redis之持久化操作
    redis之django-redis
    redis知识总汇
  • 原文地址:https://www.cnblogs.com/heliusKing/p/11734598.html
Copyright © 2011-2022 走看看