Я искал решение для этого, но ни одно из руководств не обновлено и не подходит для моего намерения.Мне нужно, чтобы загруженное пользователем изображение было загружено в javascript / aurelia, который затем отправляет его в основной сервер asp.net с помощью клиента http fetch, чтобы изображение сохранялось на диске (а не в базе данных).В настоящее время я использую следующий код, но получаю следующую ошибку, и изображения не сохраняются.
извлечение из HTML-кода, используемого для загрузки изображения
<input class="hiddenButton" id="images" type="file" accept=".jpeg" file.bind="image">
<button class="upload" onclick="document.getElementById('images').click()">
<i class="fa fa-pencil" style="color:green"></i>
</button>
извлечение javascriptкод, используемый для вызова сохранения
save() {
this.api.saveEmployee(this.employee).then(employee => this.employee = employee);
this.ea.publish(new EmployeeAdded(this.employee));
this.api.saveImage(this.image);
return this.employee;
}
код Javascript / aurelia
saveImage(image) {
var form = new FormData()
form.append('image', image)
this.http.fetch('/api/Images', {
method: 'POST',
//headers: { 'Content-Type': image.type },
body: form
})
.then(response => {
return response
})
.catch(error => {
console.log("Some Failure...");
throw error.content;
})
return true;
}
основной код MVC Asp.net (серверная часть)
[HttpPost]
public async Task<IActionResult> SaveImage(IFormFile file)
{
Console.WriteLine("Images controller");
var filePath = Path.Combine(Directory.GetCurrentDirectory(),"Image");
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok();
}
сообщение об ошибке