Skip to content

Commit a16ae1b

Browse files
committed
FormFile ContentDisposition UTF-8 unicode character Error [Bug Fix]
1 parent 661d36d commit a16ae1b

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/NetCoreStack.Proxy/Binders/BodyContentBinder.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace NetCoreStack.Proxy
1212
{
1313
public abstract class BodyContentBinder : ContentModelBinder
1414
{
15+
private const string formData = "form-data";
1516
protected IModelSerializer ModelSerializer { get; }
1617

1718
public BodyContentBinder(HttpMethod httpMethod, IModelSerializer modelSerializer)
@@ -20,14 +21,20 @@ public BodyContentBinder(HttpMethod httpMethod, IModelSerializer modelSerializer
2021
ModelSerializer = modelSerializer;
2122
}
2223

23-
protected virtual void AddFile(string key, MultipartFormDataContent multipartFormDataContent, IFormFile formFile)
24+
protected virtual void AddFile(string key, MultipartFormDataContent multipartFormDataContent, IFormFile formFile)
2425
{
2526
using (var ms = new MemoryStream())
2627
{
2728
formFile.CopyTo(ms);
2829
var fileContent = new ByteArrayContent(ms.ToArray());
29-
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(formFile.ContentType);
30-
fileContent.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse(formFile.ContentDisposition);
30+
fileContent.Headers.ContentType = new MediaTypeHeaderValue(formFile.ContentType) { CharSet = Encoding.UTF8.WebName };
31+
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue(formData)
32+
{
33+
Name = formFile.Name,
34+
FileName = formFile.FileName,
35+
Size = formFile.Length
36+
};
37+
3138
multipartFormDataContent.Add(fileContent, key, formFile.FileName);
3239
}
3340
}

0 commit comments

Comments
 (0)