C#批量上传图片到服务器

客户端代码:

 /// <summary>
        /// 批量上传图片
        /// </summary>
        /// <param name="srcurl">服务器路径</param>
        /// <param name="imagesPath">图片文件夹路径</param>
        /// <param name="files">图片名称</param>
        public void UpLoadFile(string srcurl, string imagesPath, List<string> files)
        {
            int count = 1;
            foreach (string imageName in files)
            {
                string name = imageName;
                string url = null;
                //+  加号特殊处理
                if (name.Contains("+"))
                {
                    url = srcurl + "name=" + name.Replace("+", "%2B");
                }
                else
                {
                    url = srcurl + "name=" + name;
                }

                FileStream fs = new FileStream(imagesPath + name, FileMode.Open);
                byte[] data = new byte[fs.Length];
                fs.Read(data, 0, data.Length);
                fs.Close();

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "image/jpeg";
                request.Method = "POST";
                Encoding encoding = Encoding.UTF8;
                request.ContentLength = data.Length;
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(data, 0, data.Length);
                requestStream.Close();


                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader streamReader = new StreamReader(response.GetResponseStream(), encoding);
                string retString = streamReader.ReadToEnd();
                streamReader.Close();

                Console.WriteLine((count++) + "/" + files.Count);

            }
        }

服务器端代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Text;
using System.IO;

public partial class upload : System.Web.UI.Page
{
    
    protected void Page_Load(object sender, EventArgs e)
    {
        string fPath = Server.MapPath("服务器端图片存储的虚拟目录名称");//得到虚拟目录的真实路径//检查存储目录
        if (!Directory.Exists(fPath))
        {
            Directory.CreateDirectory(fPath);
        }
        string name = Request.QueryString["name"];//得到文件名
        HttpUtility.UrlEncode(name, Encoding.GetEncoding("UTF-8"));
        
        if (name != null)
        {
            if (!File.Exists(fPath + name))
            {
                System.IO.Stream stream = Request.InputStream;
                byte[] buffer = new byte[stream.Length];
                FileStream fs = null;
                try
                {
                    fs = new FileStream(fPath + name, FileMode.Create);
                    while ((stream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        fs.Write(buffer, 0, buffer.Length);
                    }
                }
                catch (IOException ioe)
                {
                    Response.Write(ioe);
                }
                finally
                {
                    if (fs != null)
                    {
                        fs.Close();
                    }
                    stream.Close();
                }
                Response.Write(name + "<br>");
                Response.Write(File.Exists(fPath + name) + "<br>");
            }
        }
        Response.Write("上传完毕" + Directory.Exists(fPath) + Path.GetFullPath(fPath));
    }
}

 

posted @ 2014-03-05 16:28  skyko  阅读(5791)  评论(1编辑  收藏  举报