如何使用FastDFS上传图片

将fastDFS与Nginx整合好后,如何上传图片以及如何访问已经上传了的图片呢?
你还没有整合 参考
Centos 7+FastDFS与Nginx的整合教程

上传之前先对FastDFS框架做个介绍

    FastDFS包括Tracker Server 和 Storage Server两服务组成, Tracker Server负责接收上传,下载请求,接收到请求后 经过内部调度最终由Storage Server 完成文件上传和下载

上传流程

    1.向FastDFS发起长传请求
    2.FastDFS服务器的Tracker Server 接收到请求
    3.Tracker Server 查询可用的 storage Server
    4.返回Storage Server 的信息(也就是入口)
    5.根据返回信息将文件上传至Storage Server
    6.Storage Server 接收文件并生成该文件的文件名
    7.将上传的文件存入图片仓库
    8.返回访问路径以及文件名

返回的路径信息结构
group1 M00/00/00/wKiGhVjvgZeAGkEYAABAzsFxnPs529.png

group1 组名:也就是文件上传所在的Storage组名称 
M00 storage配置的虚拟路径 如果配置了Storage_path0则是M00 
/00/00/ 这两级目录是系统自动创建的
wKiGhVjvgZeAGkEYAABAzsFxnPs529.png 由源储存服务器ip地址以及文件时间戳,文件大小,随机素等信息生成。

现在开始实现上传文件的功能

首先得有 fastdfs_client包  
    fastdfs_client-1.25.jar
创建配置文件fdfs.conf
    内容就是tracker_server的地址
    tracker_server=192.168.134.133:22122

然后开始写上传代码

public void upload() throws Exception {
        // 向项目中添加jar包
        // 创建一个配置文件配置tracker服务器地址
        //加载配置文件
        ClientGlobal.init("fdfs.conf"); 

        //创建一个tracker客户端对象
        TrackerClient trackerClient = new TrackerClient(); 

        //使用trackerclient连接trackersever对象
        TrackerServer trackerServer = trackerClient.getConnection(); 

        //创建一个straged server对象 
        StorageServer storageServer = null; 

        //创建一个storage client 对象
        StorageClient storageClient = new StorageClient(trackerServer, storageServer); 

        //利用storageclient对象上传图片
        //参数一为文件所在的路径(不要有中文)
        //参数二为文件的拓展名
        //参数三为文件扩展信息 
        String[] upload_file = storageClient.upload_file("C:/Users/msi/Pictures/20170218090505.png", "png", null); 

        //upload_file 存储着访问路径
        for(String s : upload_file){
            System.out.println(s);
        }
运行结果
group1
M00/00/00/wKiGhVjvgZeAGkEYAABAzsFxnPs529.png

你可能感兴趣的:(J2EE)