Я хочу загрузить файл с Angular 7 и Asp.net core 2.2
.
В веб-сервис Angular добавьте файл и добавьте свойство Name
При вызове WebSerice от Angular показывать эту ошибку в основном журнале Asp.net.
Я прочитал этот вопрос и добавил utf-8
в Content-Type, но снова показываю ошибку.
Как я могу решить это? Проблема в Content-Type
?
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware:Error: An unhandled exception has occurred while executing the request.
System.Text.DecoderFallbackException: Unable to translate bytes [FF] at index 144 from specified code page to Unicode.
at System.Text.DecoderExceptionFallbackBuffer.Throw(Byte[] bytesUnknown, Int32 index)
at System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte[] bytesUnknown, Int32 index)
at System.Text.DecoderFallbackBuffer.InternalFallback(Byte[] bytes, Byte* pBytes, Char*& chars)
at System.Text.UTF8Encoding.FallbackInvalidByteSequence(Byte*& pSrc, Int32 ch, DecoderFallbackBuffer fallback, Char*& pTarget)
Asp.net Core:
[HttpPost("[action]")]
[AllowAnonymous]
public async Task<ReturnFromSpDto> AddFileInsertAsync(Test1 name)
{ .. }
Test1 класс:
public class Test1
{
public string Name { get; set; }
}
Угловой HTML:
<input #file type="file" multiple (change)="upload(file.files)" />
Угловой:
upload(files) {
if (files.length === 0)
return;
const formData = new FormData();
formData.append(files[0].name, files[0]);
const headers = new HttpHeaders({ "Content-Type": "application/json; charset=utf-8" });
headers.append('Accept', 'application/json');
formData.append('Name', 'ads');
console.log('formData', formData);
const uploadReq = new HttpRequest('POST',
`${this.appConfig.apiEndpoint}/api/doc/AddFileInsertAsync`, formData, {
headers: headers,
reportProgress: true,
});
this.httpClient.request(uploadReq).subscribe(event => {
if (event.type === HttpEventType.UploadProgress)
this.progress = Math.round(100 * event.loaded / event.total);
else if (event.type === HttpEventType.Response)
this.message = event.body.toString();
});
}