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

  • 相关阅读:
    CSU 1333 Funny Car Racing
    FZU 2195 检查站点
    FZU 2193 So Hard
    ZOJ 1655 FZU 1125 Transport Goods
    zoj 2750 Idiomatic Phrases Game
    hdu 1874 畅通工程续
    hdu 2489 Minimal Ratio Tree
    hdu 3398 String
    洛谷 P2158 [SDOI2008]仪仗队 解题报告
    POJ 1958 Strange Towers of Hanoi 解题报告
  • 原文地址:https://www.cnblogs.com/heliusKing/p/11734598.html
Copyright © 2020-2023  润新知