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
参数去接收就可以了。
Java操作fastDFS的更多相关文章
- coding++:java操作 FastDFS(上传 | 下载 | 删除)
开发工具 IDEAL2017 Springboot 1.5.21.RELEASE --------------------------------------------------------- ...
- coding++: java 操作FastDFS(上传 | 下载 | 删除)
package cn.com.soundrecording.controller; import cn.com.soundrecording.utils.FastDFSClient;import co ...
- Java 客户端操作 FastDFS 实现文件上传下载替换删除
FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...
- java连接Fastdfs图片服务器上传失败的解决方法
照着视频上做,但是却连接不了虚拟机linux上的图片服务器,估计是linux防火墙的问题(这个实在是神烦,前面有好几次连接不了都是因为linux防火墙),果不其然,关闭即可. Linux关闭防火墙的命 ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- Java操作Oracle
public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...
- JAVA操作ORACLE数据库的存储过程
一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...
- JAVA操作MongoDB数据库
1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...
随机推荐
- reactnative 笔记
1.<FlatList/> _renderItem = ({item})=>{ return <View style={[styles.part4Row]}> <T ...
- 无故出现 mysql dead but subsys locked的有关问题
无故出现 mysql dead but subsys locked的问题问题描述:1.mysql安装完成后,使用service mysqld restart总是出现stop mysqld servic ...
- Linux计划作业练习
1.crontab -eu zh //每天晚上10天提醒用户可以去睡觉了 * */10 * * * go to sleep 2.查询crontab的工作内容 3.当crontab命令格式出错时 ...
- BZOJ 4459: [Jsoi2013]丢番图 数学推导
之前绝对做过几乎一模一样的题,现在做竟然忘了. code: #include <bits/stdc++.h> #define ll long long #define setIO(s) f ...
- openjudge1.3
目录 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1 ...
- 网卡可以绑定cpu提高吞吐量
请看大神帖子:https://blog.csdn.net/nawenqiang/article/details/82854929 需要做什么呢? 首先,确认你是否运行irqbalance,这个是nic ...
- nginx 访问控制之 location
在生产环境中,我们会对某些特殊的请求进行限制,比如对网站的后台进行限制访问. 这就用到了location配置. 示例1: location /aming/ { deny all; } 说明:针对/am ...
- vue 百度地图多标注展示和点击标注进行的提示
index.html中加入script <script type="text/javascript" src="http://api.map.baidu.com/a ...
- SpringBoot:使用Jenkins自动部署SpringBoot项目(一)环境准备
1.安装JDK 1.在java官网下载linux下的安装包,上传到云服务器 /user/java 目录下 2.解压:tar xzvf jdk-8u161-linux-x64.tar.gz 3.为了好看 ...
- js截取get参数乱码问题之解决
举个例子说一下: http://wwww.yctech.com/blog/post?id=1 像这样的话,通常通过如下代码直接截取不用做任何处理: function getQueryString(na ...