Witam mam pewien problem.
Próbuję przesłać trochę danych za pomocą ajaxa wraz z plikiem graficznym ale z jakiegoś powodu wszystkie dane textowe przesyłają się normalnie ale plik nie i mam do was pytanie co tu może być błędem i jak to naprawić?
Skrypt do przesyłania danych
let formData = new FormData();
formData.append('file', document.querySelector('#file').files[0]);
let fileName = document.getElementById("name").value;
let amount = document.getElementById("amount").value;
let price = document.getElementById("price").value;
let data = { id: 0, name: fileName, amount: parseInt(amount), price: parseInt(price), file: formData, item_count: 0 };
$.post('https://localhost:5001/Admin/AddProduct', data, function (res) {
}).done(() => {
//reset inputs
document.querySelector("#name").value = "";
document.querySelector("#amount").value = "";
document.querySelector("#price").value = "";
//successful text
document.getElementById('successAddItem').innerHTML = "You succesfuly add " + fileName;
setTimeout(() => { document.getElementById('successAddItem').innerHTML = ""; }, 15000);
console.log("success");
});
Kontroler
public async Task<ActionResult> AddProduct(ProductModel m)
{
//return Ok(new { m.file });
await _productRepository.AddProduct(m.name, m.amount, m.price, m.file, _hostingEnvironment.WebRootPath);
return new EmptyResult();
}
Model
public int id { get; set; }
public string name { get; set; }
public int amount { get; set; }
public int price { get; set; }
public IFormFile file { get; set; }
public int item_count { get; set; }