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); }