fastdfs java上传文件_FastDFS java客户端文件上传demo

FastDFS不多讲,直接上java调用代码,以下代码是一个spring mvc中一个完整的上传请求,请参阅

@RequestMapping(value = "/upload", method = RequestMethod.POST)

@ResponseBody

public Object upload(@RequestParam MultipartFile file) {

UploadResponse res = new UploadResponse();

try {

if(file.isEmpty()){

res.setRet_code(UserCodeEnum.ERR_FILE_NULL.getCode());

res.setRet_msg(UserCodeEnum.ERR_FILE_NULL.getDesc());

}else{

logger.info("UserController-upload-request-file=" + file.getOriginalFilename());

String tempFileName = file.getOriginalFilename();

//fastDFS方式

ClassPathResource cpr = new ClassPathResource("fdfs_client.conf");

ClientGlobal.init(cpr.getClassLoader().getResource("fdfs_client.conf").getPath());

byte[] fileBuff = file.getBytes();

String fileId = "";

String fileExtName = tempFileName.substring(tempFileName.lastIndexOf("."));

//建立连接

TrackerClient tracker = new TrackerClient();

TrackerServer trackerServer = tracker.getConnection();

StorageServer storageServer = null;

StorageClient1 client = new StorageClient1(trackerServer, storageServer);

//设置元信息

NameValuePair[] metaList = new NameValuePair[3];

metaList[0] = new NameValuePair("fileName", tempFileName);

metaList[1] = new NameValuePair("fileExtName", fileExtName);

metaList[2] = new NameValuePair("fileLength", String.valueOf(file.getSize()));

//上传文件

fileId = client.upload_file1(fileBuff, fileExtName, metaList);

res.setHead_img(UserConstants.FILE_IMG_URL+fileId);

res.setRet_code(UserCodeEnum.SUCCESS.getCode());

res.setRet_msg(UserCodeEnum.SUCCESS.getDesc());

}

logger.info("UserController-upload-response-" + JsonUtils.o2j(res));

} catch (Exception e) {

res.setRet_code(UserCodeEnum.ERR_UNKNOWN.getCode());

res.setRet_msg(UserCodeEnum.ERR_UNKNOWN.getDesc());

logger.error("UserController-upload-error", e);

}

return res;

}

fileId是fastDFS返回的文件路径,fastDFS是可以使用自带的web服务访问文件,也可以集成第三方例如nginx。

fastDFS java客户端配置文件fdfs_client.conf配置如下:

connect_timeout = 30

network_timeout = 60

charset = ISO8859-1

http.tracker_http_port = 8090

http.anti_steal_token = no

http.secret_key = 123456

tracker_server = 192.168.11.***:22122

至此完成,通过网页简单测试即可,注意表单名称应与接口一直,命名为file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值