国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

POST 方式上傳圖片

2019-11-17 01:55:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

POST 方式上傳圖片

Post 方式 模仿 form表單 上傳 圖片 設(shè)置enctype = multipart/form-data

<form  enctype="multipart/form-data"></form>

 

自定義 MultipartFormData 類  (4.5以上版本好像有這個(gè)類  類名稱叫啥忘記了)

/// <summary>    /// multipart/form-data 數(shù)據(jù)類型    /// </summary>    public class MultipartFormData    {        public static string ContentType = "multipart/form-data; boundary=A300x";        PRivate string headerStream = "--A300x/r/nContent-Disposition: form-data; name=/"{0}/"; filename=/"{1}/"/r/nContent-Type: application/octet-stream/r/n/r/n";        private string footerString = "--A300x--/r/n";        private string compart = "/r/n";        private string headerString = "--A300x/r/nContent-Disposition: form-data; name=/"{0}/"/r/n/r/n";        private List<byte> lists = new List<byte>();        private byte[] footerBytes;        private byte[] comparts;        public MultipartFormData()        {            footerBytes = Encoding.UTF8.GetBytes(footerString);            comparts = Encoding.UTF8.GetBytes(compart);                   }        public byte[] Buffer        {            get            {                return lists.ToArray();            }        }        private bool IsEnd = false;        /// <summary>        ///        /// </summary>        public void End()        {            if (!IsEnd)            {                IsEnd = true;                //lists.AddRange(footerBytes.ToList());                   this.AddRanges(footerBytes);            }                 }        public void AddRanges(byte[] array) {            foreach (byte b in array)                lists.Add(b);        }        /// <summary>        /// 向序列化到多部/窗體數(shù)據(jù) MIME 類型的 對(duì)象集合添加 HTTP 內(nèi)容        /// </summary>        /// <param name="content">要添加到集合中的 HTTP 內(nèi)容</param>        /// <param name="name">要添加的 HTTP 內(nèi)容的名稱</param>        public void Add(string content, string name)        {            byte[] headerBytes = Encoding.UTF8.GetBytes(String.Format(headerString, name));            this.AddRanges(headerBytes);            byte[] buffer = Encoding.UTF8.GetBytes(content);            this.AddRanges(buffer);            this.AddRanges(comparts);        }        /// <summary>        /// 向序列化到多部/窗體數(shù)據(jù) MIME 類型的 對(duì)象集合添加 HTTP 內(nèi)容        /// </summary>        /// <param name="content">要添加到集合中的 HTTP 內(nèi)容</param>        /// <param name="name">要添加的 HTTP 內(nèi)容的名稱</param>        /// <param name="fileName">要添加到集合中的 HTTP 內(nèi)容的文件名</param>        public void Add(Stream content, string name, string fileName)        {            byte[] headerBytes = Encoding.UTF8.GetBytes(String.Format(headerStream, name, fileName));            this.AddRanges(headerBytes);            byte[] buffer = new byte[content.Length];            content.Read(buffer, 0, buffer.Length);            content.Seek(0, SeekOrigin.Begin);            this.AddRanges(buffer);            this.AddRanges(comparts);        }        /// <summary>        /// 向序列化到多部/窗體數(shù)據(jù) MIME 類型的 對(duì)象集合添加 HTTP 內(nèi)容        /// </summary>        /// <param name="content">要添加到集合中的 HTTP 內(nèi)容</param>        /// <param name="name">要添加的 HTTP 內(nèi)容的名稱</param>        /// <param name="fileName">要添加到集合中的 HTTP 內(nèi)容的文件名</param>        public void Add(byte[] content, string name, string fileName)        {            byte[] headerBytes = Encoding.UTF8.GetBytes(String.Format(headerStream, name, fileName));            this.AddRanges(headerBytes);            this.AddRanges(content);            this.AddRanges(comparts);        }    }
 
 
上傳圖片代碼
        /// <summary>        /// form-data 數(shù)據(jù)類型傳遞數(shù)據(jù)        /// </summary>        private MultipartFormData multiparFormData = new MultipartFormData();        /// <summary>        /// 鍵值對(duì)應(yīng)        /// </summary>        /// <param name="key"></param>        /// <param name="value"></param>        public void AddFormData(string key, string value)        {            this.multiparFormData.Add(value, key);        }/// <summary>        /// 傳遞一個(gè) strem 類型        /// </summary>        /// <param name="key"></param>        /// <param name="value"></param>        /// <param name="fileName"></param>        public void AddFormData(string key, Stream value, string fileName)        {            this.multiparFormData.Add(value, key, fileName);        }        /// <summary>        /// 傳遞一個(gè) byte[] 類型        /// </summary>        /// <param name="key"></param>        /// <param name="value"></param>        /// <param name="fileName"></param>        public void AddFormData(string key, byte[] value, string fileName)        {            this.multiparFormData.Add(value, key, fileName);        }        private static CookieContainer m_Cookie = new CookieContainer();/// <summary>        /// POST form-data 方式請(qǐng)求消息        /// </summary>        /// <param name="url"></param>        /// <param name="isHttps"></param>        /// <returns></returns>        public string PostFromData(string url, bool isHttps) {            try            {                multiparFormData.End();                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);                request.Method = "POST";                request.ContentType = MultipartFormData.ContentType;                request.CookieContainer = m_Cookie;//設(shè)置上一個(gè)訪問(wèn)頁(yè)面的cookie 保持session                request.ContentLength = multiparFormData.Buffer.Length;                Stream stream = request.GetRequestStream();                stream.Write(multiparFormData.Buffer, 0, multiparFormData.Buffer.Length);                stream.Close();                WebResponse response = request.GetResponse();                Stream streamResponse = response.GetResponseStream();                StreamReader sr = new StreamReader(streamResponse);                return sr.ReadToEnd();            }            catch (Exception ex) {                Log.WriteLog("POST form-data 方式請(qǐng)求消息:" + ex.Message);                return "error";            }        }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 木里| 平阳县| 仪陇县| 日照市| 芦山县| 清丰县| 鹿泉市| 同德县| 巴青县| 密云县| 凌源市| 时尚| 昭苏县| 克拉玛依市| 赞皇县| 峨眉山市| 丹凤县| 桃源县| 阿拉善盟| 陵川县| 茂名市| 华亭县| 石渠县| 高碑店市| 广宁县| 青岛市| 临江市| 社会| 保亭| 南川市| 丽水市| 肇州县| 宝清县| 乐安县| 康平县| 南华县| 临潭县| 石林| 绵竹市| 壤塘县| 绵竹市|