1.pom配置FastDFS依賴
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.29-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
由于fastdfs-client-java jar包沒有上傳到中央倉庫,所以需要下載源碼進(jìn)行maven編譯再上傳到項(xiàng)目
下載地址:點(diǎn)擊進(jìn)入下載
2.導(dǎo)入jar包
下載后解壓打開項(xiàng)目并進(jìn)行編譯 mvn clean install
所需的jar包
打開我們的項(xiàng)目(idea工具)
File->Project Structure->Dependencies
上傳jar包
選擇并導(dǎo)入剛剛編譯好的jar包
3.配置信息
在resources下新建fdfs-client.conf
connect_timeout = 10
network_timeout = 30
charset = UTF-8
http.tracker_http_port = 80
http.anti_steal_token = no
http.secret_key = FASTDFS1234567890
tracker_server = ip:22122
4.圖片上傳
package org.jeecg.common.util;
import org.csource.common.MyException;
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;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
/**
* 上傳圖片到Fast
*
*/
public class FastDFSUtils {
private static final String CONF_FILENAME = "fdfs-client.conf";
private static final String serverUrl = "http://ip";
static {
String filePath = (FastDFSUtils.class.getClass().getResource("/").getPath()+CONF_FILENAME).replaceAll("http://","\\");
try {
ClientGlobal.init(filePath);
} catch (IOException e) {
e.printStackTrace();
} catch (MyException e) {
e.printStackTrace();
}
}
/**
* 功能描述:文件上傳
*/
public static String uploadFile(MultipartFile file) throws Exception {
File toFile = MultipartFileToFile.multipartFileToFile(file);
FileInputStream fis = null;
NameValuePair[] meta_list = null;
TrackerClient trackerClient = new TrackerClient(ClientGlobal.g_tracker_group);
TrackerServer trackerServer = trackerClient.getTrackerServer();
StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
StorageClient1 storageClient = new StorageClient1(trackerServer, storageServer);
fis = new FileInputStream(toFile);
byte[] file_buff = null;
if (fis != null) {
int len = fis.available();
file_buff = new byte[len];
fis.read(file_buff);
}
String fileId = storageClient.upload_file1(file_buff, getFileExt(file.getName()), meta_list);
String url = serverUrl+"/"+fileId;
return url;
}
/**
* 功能描述:文件下載
*/
public static InputStream downloadFile(String fileId) throws IOException, MyException {
TrackerClient trackerClient = new TrackerClient(ClientGlobal.g_tracker_group);
TrackerServer trackerServer = trackerClient.getTrackerServer();
StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
StorageClient1 storageClient = new StorageClient1(trackerServer, storageServer);
byte[] bytes = storageClient.download_file1(fileId);
InputStream inputStream = new ByteArrayInputStream(bytes);
inputStream.close();
return inputStream;
}
/**
* 功能描述:獲取文件名后綴(不包含點(diǎn))
*/
private static String getFileExt(String fileName) {
if (fileName == null || !fileName.contains(".")) {
return "";
} else {
return fileName.substring(fileName.lastIndexOf(".") + 1); // 不帶最后的點(diǎn)
}
}
/**
* 功能描述: 刪除文件
*/
public static int deleteFile(String fileId) throws IOException, MyException {
TrackerClient trackerClient = new TrackerClient(ClientGlobal.g_tracker_group);
TrackerServer trackerServer = trackerClient.getTrackerServer();
StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
StorageClient1 storageClient = new StorageClient1(trackerServer, storageServer);
int result = storageClient.delete_file1(fileId);
return result;
}
}


