diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs index 00ae71fbd2..bf9cdac23f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs @@ -29,7 +29,7 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters if (!remoteStream.FileName.IsNullOrWhiteSpace()) { //https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#syntax - context.HttpContext.Response.Headers.Add("Content-Disposition", $"attachment; filename=\"{remoteStream.FileName}\""); + context.HttpContext.Response.Headers.Add("Content-Disposition", $"attachment; filename=\"{remoteStream.FileName}\"; filename*=UTF-8''{Uri.EscapeDataString(remoteStream.FileName)}"); } using (var stream = remoteStream.GetStream()) diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs index f9712e699d..57d1d6c68b 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs @@ -57,7 +57,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying ICancellationTokenProvider cancellationTokenProvider, ICorrelationIdProvider correlationIdProvider, IOptions correlationIdOptions, - ICurrentTenant currentTenant, + ICurrentTenant currentTenant, IRemoteServiceConfigurationProvider remoteServiceConfigurationProvider) { CancellationTokenProvider = cancellationTokenProvider; @@ -115,7 +115,8 @@ namespace Volo.Abp.Http.Client.DynamicProxying return (T)(object)new RemoteStreamContent(await responseContent.ReadAsStreamAsync()) { ContentType = responseContent.Headers.ContentType?.ToString(), - FileName = responseContent.Headers?.ContentDisposition?.FileName?.RemovePreFix("\"")?.RemovePostFix("\"") + FileName = responseContent.Headers?.ContentDisposition?.FileNameStar ?? + responseContent.Headers?.ContentDisposition?.FileName?.RemovePreFix("\"")?.RemovePostFix("\"") }; } @@ -278,7 +279,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying throw new AbpRemoteCallException(errorResponse.Error) { - HttpStatusCode = (int) response.StatusCode + HttpStatusCode = (int)response.StatusCode }; } @@ -290,7 +291,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying } ) { - HttpStatusCode = (int) response.StatusCode + HttpStatusCode = (int)response.StatusCode }; }