zoukankan      html  css  js  c++  java
  • 文件分布式存储的代码实现

    1.web服务器端

     1   public ActionResult DealFile()
     2         {
     3             HttpPostedFileBase file = Request.Files["imageFile"];
     4             if (file != null)
     5             {
     6                 string fileName = file.FileName;
     7                 string ext = Path.GetExtension(fileName);
     8                 if (ext == ".jpg")
     9                 { 
    10                    //选择服务器
    11                     MyImageServerEntities dbContext = new MyImageServerEntities();
    12                    IList<ImageServerInfo> serverList= dbContext.ImageServerInfo.Where(server => server.FlgUsable == true).ToList();
    13                    int count = serverList.Count;
    14                    Random random = new Random();
    15                    int data = random.Next();
    16                    int index = data % count;
    17                    ImageServerInfo serverInfo = serverList[index];
    18                    string serverIP = serverInfo.ServerUrl;
    19                    string address = "http://" + serverIP + "/FileUp.ashx?serverId=" + serverInfo.ServerId + "&extention=" + ext;
    20                    WebClient client = new WebClient();
    21                     client.UploadData(address ,StreamToByte(file.InputStream));
    22                 }
    23                 else
    24                 {
    25                     return Content("文件的格式不对");
    26                 }
    27             }
    28             else
    29             {
    30                 return Content("接收文件失败");
    31             }
    32             return Content("OK");
    33         }

    2.图片服务器端

     1   public void ProcessRequest(HttpContext context)
     2         {
     3             context.Response.ContentType = "text/plain";
     4             // context.Response.Write("Hello World");
     5             string dir = "/Image/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
     6             string serverId = context.Request["serverId"];
     7             string ext = context.Request["extention"];
     8             string fileName = Guid.NewGuid().ToString();
     9             Directory.CreateDirectory(Path.GetDirectoryName(context.Server.MapPath(dir)));
    10             string fullName = context.Server.MapPath(dir) + fileName + ext;
    11             using (FileStream fileStream =File.OpenWrite(fullName))
    12             {
    13                 Stream stream = context.Request.InputStream;
    14                 stream.CopyTo(fileStream);
    15                 //需要将文件信息写到数据库中去,同时可以写到缓存中(Session)
    16                 Model.ImageInfo imageInfo = new Model.ImageInfo();
    17                 imageInfo.ImageServerId = int.Parse(serverId);
    18                 imageInfo.ImageName = dir + fileName + ext;
    19                 Model.MyImageServerEntities dbContext = new Model.MyImageServerEntities();
    20                 dbContext.ImageInfo.Add(imageInfo);
    21                 dbContext.SaveChanges();
    22 
    23             }
    24 
    25         }
  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/XZhao/p/7295909.html
Copyright © 2011-2022 走看看