栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

FAST DFS 流上传

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FAST DFS 流上传

  @RequestMapping(value = "/fastDFSUpload", method = RequestMethod.POST)
    @ResponseBody
    public void fastDFSUpload(@RequestParam("file") MultipartFile file) throws IOException {
        try {// 初始化全局配置。加载一个配置文件。

            ClientGlobal.init("D:\dfs.conf");
            // 创建一个TrackerClient对象。
            TrackerClient trackerClient = new TrackerClient();
            // 创建一个TrackerServer对象。
            TrackerServer trackerServer = trackerClient.getConnection();
            // 声明一个StorageServer对象,null。
            StorageServer storageServer = null;
            // 获得StorageClient对象。
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);

            InputStream inputStream = file.getInputStream();
            String name=file.getOriginalFilename();
            String exatName=name.substring(name.lastIndexOf(".") + 1, name.length());
            int fileLength =inputStream.available();//获取文件大小
            NamevaluePair[] metaList = new NamevaluePair[3];
            metaList[0] = new NamevaluePair("fileName",name);
            metaList[1] = new NamevaluePair("fileExtName",exatName );
            metaList[2] = new NamevaluePair("fileLength", String.valueOf(fileLength));
            UploadFileSender us = new UploadFileSender(inputStream);
            String[] strings = storageClient.upload_file(null,fileLength,us, "txt", metaList);
            for (String string : strings) {
                System.out.println(string);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
    }

package com.bianq.learn.demo.message;

import org.csource.fastdfs.UploadCallback;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

class UploadFileSender implements UploadCallback {

    private InputStream inStream;

    public UploadFileSender(InputStream inStream) {
        this.inStream = inStream;
    }

    public int send(OutputStream out) throws IOException {
        byte[] bs = new byte[1024];
        int i=0;
        try{
            while ((i = inStream.read(bs)) != -1) {

                out.write(bs, 0, i);

            }
            out.flush();
        }catch (Exception e){
            e.printStackTrace();
        }

        return 0;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号