diff --git a/RestSharp/RestRequest.cs b/RestSharp/RestRequest.cs index 758fb98ff..c0354657b 100644 --- a/RestSharp/RestRequest.cs +++ b/RestSharp/RestRequest.cs @@ -199,6 +199,37 @@ public IRestRequest AddFile (string name, Action writer, string fileName return AddFile(new FileParameter { Name = name, Writer = writer, FileName = fileName, ContentType = contentType }); } + + /// + /// Add bytes to the Files collection as if it was a file of specific type + /// + /// A form parameter name + /// The file data + /// The file name to use for the uploaded file + /// Specific content type. Es: application/x-gzip + /// + public IRestRequest AddBytesAs(string name, byte[] bytes, string filename, string contentType = "application/x-gzip") + { + + long length = bytes.Length; + return AddFile(new FileParameter + { + Name = name, + FileName = filename, + ContentLength = length, + ContentType = contentType, + Writer = s => + { + using (var file = new StreamReader(new MemoryStream(bytes))) + { + file.BaseStream.CopyTo(s); + } + } + }); + } + + + private IRestRequest AddFile (FileParameter file) { Files.Add(file);