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         }
  • 相关阅读:
    Smali基本语法
    图片智能缩小
    How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
    [操作系统][Ubuntu 14.04] 安装Flash 安装QQ2013
    eclipse在Ubuntu 13.04下的安装过程及问题小记
    Android系统手机端抓包方法
    Android 开源框架ActionBarSherlock 和 ViewPager 仿网易新闻客户端
    试用Android Annotations
    Android Annotations 介绍
    盘点国内Android移动广告平台的现状
  • 原文地址:https://www.cnblogs.com/XZhao/p/7295909.html
Copyright © 2011-2022 走看看