Я пытаюсь загрузить изображение. Я публикую фотографию на этом контроллере API. (это главный сервер .net)
[HttpPost]
[AllowAnonymous]
[Route ("{id}/uploadPhoto")]
public async Task<ActionResult> UploadImage (string id, PhotoUpload photo) {
// if (request.Content.IsMimeMultipartContent ()) {
// var test = "";
// }
var news = await _context.News.FindAsync (id);
if (news == null) {
return NotFound ();
}
using (var memoryStream = new MemoryStream ()) {
photo.Image.CopyTo (memoryStream);
news.Image = memoryStream.ToArray ();
_context.News.Update (news);
}
return Ok();
}
Использование модели
using IAL_Marketing_Server.Interfaces;
namespace IAL_Marketing_Server.Models
{
public class PhotoUpload
{
public IFormFile Image {get; set;}
}
}
Модель интерфейса использует
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
namespace IAL_Marketing_Server.Interfaces {
public interface IFormFile
{
string ContentType { get; }
string ContentDisposition { get; }
IHeaderDictionary Headers { get; }
long Length { get; }
string Name { get; }
string FileName { get; }
Stream OpenReadStream();
void CopyTo(Stream target);
}
}
Хотя вызов API никогда не поступает в контроллер. Сервер выдает исключение:
Исключение: «System.Text.DecoderFallbackException» в
System.Private.CoreLib.dll
Внешний интерфейс видит эту ошибку:
Невозможно перевести байты [FF] по индексу 139 из указанной кодовой страницы.
в Юникод.
Я в тупике. Похоже, это должно просто работать. О, и передний конец является угловым, используя angular2-image-upload. Так что процесс загрузки должен быть в порядке.