и спасибо за чтение моего поста ..
Сначала я должен сказать, что я погуглил и попробовал несколько подходов, но безуспешно .. Поэтому я должен попытать счастья здесь ..
Довольно просто: управление загрузкой файлов -> Наблюдаемый -> JS объект для отправки в API.
Надеюсь, что кто-то может просветить меня об этом .. Я вроде застрял: (
Управление вводом
<input class="form-control" type="file" data-bind="file: {data: fileInput}" />
Код выбивания
var MenuWizardModel = function() {
var self = this;
self.fileInput = ko.observable();
self.SaveMenu = function () {
console.log(ko.utils.unwrapObservable(self.fileInput()));
var newMenuViewModel = {
name: ko.utils.unwrapObservable(self.regName()),
image: ko.utils.unwrapObservable(self.fileInput())
}
console.table(newMenuViewModel);
// PS! newMenuViewModel.image is UNDEFINED here..
var uri = '/api/Menu';
$.ajax({
url: uri,
type: 'POST',
data: newMenuViewModel,
dataType: 'json',
success: function (data) {
console.log("Success! => " + data);
//window.location.href = "Menus.aspx";
},
error: function (x, y, z) {
console.log("x = " + x + ", y = " + y + ", z = " + z);
}
});
}
WEB API - Backend
[Route("api/Menu")]
public string Post([FromBody]newMenuViewModel submitData)
{
// servicelayer handling submitData.image as this :
string base64String = Regex.Replace(submitData.image, @"^.+?(;base64),", string.Empty);
byte[] imageBytes = System.Convert.FromBase64String(base64String);