Example #1
0
 private void GetTotalRequestData(MultiStream stream)
 {
     for (int i = 0; i < Items.Count; i++)
     {
         string str = string.Empty;
         if (IsMultiPart())
         {
             str = "--" + Header.Boundary + "\r\n";
             if (i > 0)
             {
                 str = "\r\n" + str;
             }
         }
         else if ((i > 0) && IsForm())
         {
             str = "&";
         }
         if (!StringUtils.IsEmpty(str))
         {
             stream.AddStream(new StringStream(str));
         }
         stream.AddStream(Items[i].GetData());
     }
     if (IsMultiPart())
     {
         stream.AddStream(new StringStream("\r\n--" + Header.Boundary + "--\r\n"));
     }
 }
        public override Stream GetData()
        {
            Stream stream2;

            if ((base.Owner == null) || !base.Owner.IsMultiPart())
            {
                return(Stream.Null);
            }
            MultiStream stream = new MultiStream();

            try
            {
                stream.AddStream(new StringStream("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n", new object[] { base.GetCanonicalizedValue(this.FieldName), base.GetCanonicalizedValue(Utils.ExtractFileName(this.FileName)), this.ContentType }));
                GetDataStreamEventArgs e = new GetDataStreamEventArgs(this);
                base.Owner.OnGetDataSourceStream(e);
                if (e.Stream == null)
                {
                    if (bytes == null)
                    {
                        stream.AddStream(new FileStream(this.FileName, FileMode.Open, FileAccess.Read, FileShare.Read));
                    }
                    else
                    {
                        stream.AddStream(new MemoryStream(bytes));
                    }
                }
                else
                {
                    stream.AddStream(e.Stream);
                }
                stream2 = stream;
            }
            catch (Exception exception)
            {
                stream.Close();
                throw exception;
            }
            return(stream2);
        }