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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM