Я пытаюсь загрузить файл библиотеки классов ASP.NET Core (DLL) из моего клиентского приложения Angular 5. На стороне сервера у меня есть веб-API ASP.NET Core 2.0 для получения загруженного файла. Я использовал стандартный рекомендованный механизм. Код на стороне клиента выглядит следующим образом
uploadAssemblyFile(file: File): any {
const formdata: FormData = new FormData();
formdata.append('file', file, file.name);
const endpoint = '/api/upload';
const req = new HttpRequest('POST', endpoint, formdata, {
reportProgress: true,
responseType: 'json'
});
return this.http.request(req);
}
Коды на стороне сервера следующие:
[HttpPost()]
[Route("api/upload")]
public async Task<IActionResult> UploadAssembly(IFormFile file)
{
long size = file.Length;
var uploads = Path.Combine(Directory.GetCurrentDirectory(), "uploads");
if (file != null && file.Length > 0)
{
using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
}
return Ok();
}
Веб-API вызывается правильно, в IFormFile есть все необходимые данные. Файл будет сохранен. Однако файл кажется поврежденным. Размер исходного файла и загруженных файлов, отображаемых с помощью свойств в Windows, различается.
То же самое происходит с файлами PNG. Однако файлы TXT загружаются правильно.
Сталкивался ли кто-нибудь с чем-нибудь похожим на выше. Я просмотрел несколько сообщений, но не получил необходимого ответа.
Любые указатели обязательно помогут. заранее спасибо
@cgTag - похоже, это не работает





Попробуйте изменить заголовки POST, чтобы не было контекстного типа:
headers: { 'Content-Type': undefined }