Java實現Fast DFS圖片上傳(代碼)

之前寫了,linux上安裝配置Fast DFS整合nginx,圖片上傳測試。
這裏在寫一下,Java實現Fast DFS圖片上傳。
開始:
maven添加fastdfs相應的jar包
這裏寫圖片描述
jar包下載地址:鏈接:https://pan.baidu.com/s/1smuDFtV 密碼:xfnu
上傳測試代碼:

/**
     * 測試圖片上傳
     * @throws MyException 
     * @throws IOException 
     * @throws FileNotFoundException 
     */
    @Test
    public void uploadPic() throws Exception{
        //1.指定要上傳的圖片的絕對路徑
        String path = "F:\\fc29cd5c10385343ade29c739813b07eca8088b2.jpg";
        //2.指定圖片服務器路徑,使用client.conf文件。指定client.conf的絕對路徑
        String clienPath = "E:\\Itcast\\Project\\taotao\\space3\\taotao-manager-web\\src\\main\\resources\\client.conf";
        //3.加載配置文件,連接服務器
        ClientGlobal.init(clienPath);
        //4.創建tracker客戶端
        TrackerClient trackerClient = new TrackerClient();
        //5.從客戶端獲取tracker對象
        TrackerServer trackerServer = trackerClient.getConnection();

        StorageServer storageServer = null;
        //6.創建storage客戶端
        StorageClient storageClient = new StorageClient(trackerServer,storageServer);
        //7.上傳
        String[] upload_file = storageClient.upload_file(path, "jpg", null);

        for (String string : upload_file) {
            System.out.println(string);
        }
    }

工具類:

package com.taotao.web.utils;

import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

public class FastDFSClient {

    private TrackerClient trackerClient = null;
    private TrackerServer trackerServer = null;
    private StorageServer storageServer = null;
    private StorageClient1 storageClient = null;

    public FastDFSClient(String conf) throws Exception {
        if (conf.contains("classpath:")) {
            conf = conf.replace("classpath:", this.getClass().getResource("/").getPath());
        }
        ClientGlobal.init(conf);
        trackerClient = new TrackerClient();
        trackerServer = trackerClient.getConnection();
        storageServer = null;
        storageClient = new StorageClient1(trackerServer, storageServer);
    }

    /**
     * 上傳文件方法
     * <p>Title: uploadFile</p>
     * <p>Description: </p>
     * @param fileName 文件全路徑
     * @param extName 文件擴展名,不包含(.)
     * @param metas 文件擴展信息
     * @return
     * @throws Exception
     */
    public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {
        String result = storageClient.upload_file1(fileName, extName, metas);
        return result;
    }

    public String uploadFile(String fileName) throws Exception {
        return uploadFile(fileName, null, null);
    }

    public String uploadFile(String fileName, String extName) throws Exception {
        return uploadFile(fileName, extName, null);
    }

    /**
     * 上傳文件方法
     * <p>Title: uploadFile</p>
     * <p>Description: </p>
     * @param fileContent 文件的內容,字節數組
     * @param extName 文件擴展名
     * @param metas 文件擴展信息
     * @return
     * @throws Exception
     */
    public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception {

        String result = storageClient.upload_file1(fileContent, extName, metas);
        return result;
    }

    public String uploadFile(byte[] fileContent) throws Exception {
        return uploadFile(fileContent, null, null);
    }

    public String uploadFile(byte[] fileContent, String extName) throws Exception {
        return uploadFile(fileContent, extName, null);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章