//webclient應用
MyImageServerEntities db = new MyImageServerEntities(); public ActionResult Index() { return View(); } public ActionResult FileUpload() { HttpPostedFileBase file = Request.Files["fileUp"]; string fileName = Path.GetFileName(file.FileName); string fileExt = Path.GetExtension(fileName); if (fileExt == ".jpg") { var list=db.ImageServerInfo.Where<ImageServerInfo>(u => u.FlgUsable == true).ToList();//找出可用的圖片服務器. int count = list.Count(); Random random = new Random(); int r = random.Next(); int i = r % count; string serverUrl = list[i].ServerUrl; int serverId = list[i].ServerId; string url = "http://"+serverUrl+"/FileUp.ashx?serverId="+serverId+"&fileExt="+fileExt; WebClient webClient =new WebClient(); webClient.UploadData(url, StreamToBytes(file.InputStream)); } return Content("ok"); } public ActionResult ShowImage() { var list= db.ImageServerInfo.Where<ImageServerInfo>(c=>c.FlgUsable==true).ToList(); ViewData["imageServerList"] = list; return View(); } private byte[] StreamToBytes(Stream stream) { byte[]buffer=new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); stream.Seek(0, SeekOrigin.Begin); return buffer; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
context.Response.ContentType =
"text/plain"
;
int
serverId =
int
.Parse(context.Request[
"serverId"
]);
string
fileExt = context.Request[
"fileExt"
];
string
dir =
"/ImagePath/"
+ DateTime.Now.Year +
"/"
+ DateTime.Now.Month +
"/"
+ DateTime.Now.Day +
"/"
;
Directory.CreateDirectory(Path.GetDirectoryName(context.Request.MapPath(dir)));
string
newfileName = Guid.NewGuid().ToString();
string
fullDir = dir + newfileName + fileExt;
using
(FileStream fileStream = File.Open(context.Request.MapPath(fullDir), FileMode.OpenOrCreate))
{
context.Request.InputStream.CopyTo(fileStream);
MyImageServerEntities db =
new
MyImageServerEntities();
ImageInfo imageInfo =
new
ImageInfo();
imageInfo.ImageName = fullDir;
imageInfo.ImageServerId = serverId;
db.ImageInfo.Add(imageInfo);
db.SaveChanges();
}
|
//httpclient 應用
創建並初始化對象: client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 讀集合: HttpResponseMessage response = client.GetAsync(url).Result; var userList = response.Content.ReadAsAsync<IEnumerable<數據類型>>().Result; 根據編號讀對象 HttpResponseMessage response1 = client.GetAsync(url).Result; var userInfo = response1.Content.ReadAsAsync<數據類型>().Result; 增加: HttpResponseMessage response = client.PostAsJsonAsync("api/userinfo", userInfo).Result; 使用response.IsSuccessStatusCode判斷是否成功 使用response.Content.ToString()獲取返回值 修改: HttpResponseMessage response = client.PutAsJsonAsync("api/userinfo/"+userInfo.UserId, userInfo).Result; 使用response.IsSuccessStatusCode判斷是否成功 使用response.Content.ToString()獲取返回值 刪除: HttpResponseMessage response = client.DeleteAsync("api/userinfo/" + uid).Result; 使用response.IsSuccessStatusCode判斷是否成功 使用response.Content.ToString()獲取返回值