【FastDFS】FastDFS和asp.net项目的结合

前言

     上一篇博客中,小编简介了FastDFS是什么,以及我们应该如何搭建FastDFS服务器,下面我们就来了解一下,FastDFS在.net平台下如何实现上传和下载功能。

叙述

   如图,小编想实现上传图片到FastDFS服务器上,并且页面加载的时候能够把图片显示到页面。

【FastDFS】FastDFS和asp.net项目的结合_第1张图片【FastDFS】FastDFS和asp.net项目的结合_第2张图片

下面我们就直接用代码说话吧。

因为小编的项目框架是asp.net框架,所以需要在aspx.cs页面上写上如下代码:

1、添加引用,需要添加FastDFS.dll 

 

using FastDFS.Client;
using FastDFS.Client.Common;
using FastDFS.Client.Config;
using FastDFS.Client.Storage;
using FastDFS.Client.Tracker;
using System.Net;
using System.IO;

2、在类中声明全局变量

 

  private List trackerIPs = new List();
  private StorageNode storageNode;

3、在页面初始化加载的时候设置FastDFS服务器地址

【FastDFS】FastDFS和asp.net项目的结合_第3张图片

4、上传图片到FastDFS

  小编使用的上传控件是asp.net框架自带的FileUpload控件,在页面上添加此控件即可。有关FastDFS的核心上传代码如下:

 

   //上传图片到FastDFS
            #region
            #region 与服务器连接
            string[] trackers = txtTracker.Text.Replace("\r\n", ",").Split(new char[','], StringSplitOptions.RemoveEmptyEntries);
            string[] storages = txtTracker.Text.Replace("\r\n", ",").Split(new char[','], StringSplitOptions.RemoveEmptyEntries);
            foreach (var onetracker in trackers)
            {
                trackerIPs.Add(new IPEndPoint(IPAddress.Parse(onetracker), 22122));
                ConnectionManager.Initialize(trackerIPs);
                storageNode = FastDFSClient.GetStorageNode("group1");
            }
            #endregion

            if (FileUpload1.HasFile)
            {
                //得到文件的名字
                string FileName = System.IO.Path.GetFileName(FileUpload1.FileName);
                //得到文件的大小
                byte[] content = FileUpload1.FileBytes;

                //得到文件的扩展名
                string getExtension = Path.GetExtension(FileUpload1.FileName).ToLower();
                Boolean fileOk = false;
                //验证上传文件是否图片格式
                fileOk = IsImage(getExtension);
                if (fileOk)
                {
                    if (FileUpload1.PostedFile.ContentLength < 1024000)
                    {
                        string filePath = FastDFSClient.UploadFile(storageNode, content, getExtension);

                        string ShowPath = "http://" + trackerIPs[0].Address + "/" + "group1/" + filePath;

                        this.Image1.ImageUrl = ShowPath;
                        newfood.imgsrc = filePath;
                    }
                    else
                    {
                        Response.Write("文件大小超出1M!请重新选择!");
                    }
                }
                else
                {
                    Response.Write("上传的文件类型不对!请重新选择!");
                }
            }
            else
            {
                Response.Write("请选择要上传的图片!");
            }


            #endregion

5、图片回显

在B层设置返回图片字段的路径

(1)声明路径的全局变量

 

 public string src = "http://192.168.22.71/group1/";

(2)设置返回图片路径,如果此菜没有上传图片,则显示默认图片

 

 //食堂食物分类,“热菜”、“凉菜”、“主食”
        public DataTable QueryFoodByShiId(int FoodTN)
        {

            DataTable dt = mmdao.QueryFoodByShiId(FoodTN);

            for (int i = 0; i < dt.Rows.Count; i++)
            {

                if (Convert.ToString(dt.Rows[i]["imgsrc"]) == "" || dt.Rows[i]["imgsrc"] == null)
                    {

                        dt.Rows[i]["imgsrc"] = @"..\images\unupload.jpg";
                       
                    }

               else
                    {
                        dt.Rows[i]["imgsrc"] = src + dt.Rows[i]["imgsrc"];

                    }
                  
            }
            return dt;
       
        }

小结

      不怕不知道,就怕不知道

你可能感兴趣的:(★拓展学习,——【FastDFS】)