C#서버에 사진 대량 업로드

10397 단어 서버
클라이언트 코드:
 /// <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));

    }

}

좋은 웹페이지 즐겨찾기