c#批量上传图片到服务器示例分享
这篇文章主要介绍了c#批量上传图片到服务器示例,服务器端需要设置图片存储的虚拟目录,需要的朋友可以参考下
1 /// <summary> 2 /// 批量上传图片 3 /// </summary> 4 /// <param name="srcurl">服务器路径</param> 5 /// <param name="imagesPath">图片文件夹路径</param> 6 /// <param name="files">图片名称</param> 7 public void UpLoadFile(string srcurl, string imagesPath, List<string> files) 8 { 9 int count = 1; 10 foreach (string imageName in files) 11 { 12 string name = imageName; 13 string url = null; 14 //+ 加号特殊处理 15 if (name.Contains("+")) 16 { 17 url = srcurl + "name=" + name.Replace("+", "%2B"); 18 } 19 else 20 { 21 url = srcurl + "name=" + name; 22 } 23 FileStream fs = new FileStream(imagesPath + name, FileMode.Open); 24 byte[] data = new byte[fs.Length]; 25 fs.Read(data, 0, data.Length); 26 fs.Close(); 27 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 28 request.ContentType = "image/jpeg"; 29 request.Method = "POST"; 30 Encoding encoding = Encoding.UTF8; 31 request.ContentLength = data.Length; 32 Stream requestStream = request.GetRequestStream(); 33 requestStream.Write(data, 0, data.Length); 34 requestStream.Close(); 35 36 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 37 StreamReader streamReader = new StreamReader(response.GetResponseStream(), encoding); 38 string retString = streamReader.ReadToEnd(); 39 streamReader.Close(); 40 Console.WriteLine((count++) + "/" + files.Count); 41 } 42 }
服务器端代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Net; 8 using System.Text; 9 using System.IO; 10 public partial class upload : System.Web.UI.Page 11 { 12 13 protected void Page_Load(object sender, EventArgs e) 14 { 15 string fPath = Server.MapPath("服务器端图片存储的虚拟目录名称");//得到虚拟目录的真实路径//检查存储目录 16 if (!Directory.Exists(fPath)) 17 { 18 Directory.CreateDirectory(fPath); 19 } 20 string name = Request.QueryString["name"];//得到文件名 21 HttpUtility.UrlEncode(name, Encoding.GetEncoding("UTF-8")); 22 if (name != null) 23 { 24 if (!File.Exists(fPath + name)) 25 { 26 System.IO.Stream stream = Request.InputStream; 27 byte[] buffer = new byte[stream.Length]; 28 FileStream fs = null; 29 try 30 { 31 fs = new FileStream(fPath + name, FileMode.Create); 32 while ((stream.Read(buffer, 0, buffer.Length)) > 0) 33 { 34 fs.Write(buffer, 0, buffer.Length); 35 } 36 } 37 catch (IOException ioe) 38 { 39 Response.Write(ioe); 40 } 41 finally 42 { 43 if (fs != null) 44 { 45 fs.Close(); 46 } 47 stream.Close(); 48 } 49 Response.Write(name + "<br>"); 50 Response.Write(File.Exists(fPath + name) + "<br>"); 51 } 52 } 53 Response.Write("上传完毕" + Directory.Exists(fPath) + Path.GetFullPath(fPath)); 54 } 55 }