From 6c7b73bcaf85bae34fd46292fbc4ba141f2c77d1 Mon Sep 17 00:00:00 2001 From: Alexey Zimarev Date: Mon, 24 Jan 2022 12:55:47 +0100 Subject: [PATCH] Wrap filename and param name in quotes for disposition --- src/RestSharp/Request/RequestContent.cs | 6 +++--- test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/RestSharp/Request/RequestContent.cs b/src/RestSharp/Request/RequestContent.cs index b5e5799bd..81451a1d4 100644 --- a/src/RestSharp/Request/RequestContent.cs +++ b/src/RestSharp/Request/RequestContent.cs @@ -68,8 +68,8 @@ void AddFiles() { fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(file.ContentType); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { - Name = file.Name, - FileName = file.FileName + Name = $"\"{file.Name}\"", + FileName = $"\"{file.FileName}\"" }; mpContent.Add(fileContent, file.Name, file.FileName); } @@ -132,7 +132,7 @@ void AddBody(bool hasPostParameters) { // here we must use multipart form data var mpContent = Content as MultipartFormDataContent ?? new MultipartFormDataContent(); var ct = bodyContent.Headers.ContentType?.MediaType; - var name = bodyParameter!.Name.IsEmpty() ? ct : bodyParameter!.Name; + var name = bodyParameter!.Name.IsEmpty() ? ct : bodyParameter.Name; if (name.IsEmpty()) mpContent.Add(bodyContent); diff --git a/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs b/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs index 7c8c644d5..c52478e85 100644 --- a/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs +++ b/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs @@ -34,7 +34,7 @@ public MultipartFormDataTests(ITestOutputHelper output) { const string ExpectedFileAndBodyRequestContent = "--{0}" + $"{LineBreak}{KnownHeaders.ContentType}: application/octet-stream" + - $"{LineBreak}{KnownHeaders.ContentDisposition}: form-data; name=fileName; filename=TestFile.txt" + + $"{LineBreak}{KnownHeaders.ContentDisposition}: form-data; name=\"fileName\"; filename=\"TestFile.txt\"" + $"{LineBreak}{LineBreak}This is a test file for RestSharp.{LineBreak}" + $"--{{0}}{LineBreak}{KnownHeaders.ContentType}: application/json; {CharsetString}" + $"{LineBreak}{KnownHeaders.ContentDisposition}: form-data; name=controlName" +