Я использую angular в качестве внешнего интерфейса и .NET Web API в качестве внутреннего и SQL Server 2012. Я пытаюсь заполнить свою базу данных изображением, именем изображения, номером и ценой, но заполняется только изображение.
Угловой
image.component.ts
imageUrl:String="";
fileToUpload:File=null;
handleImageChange(file: FileList){
this.fileToUpload = file.item(0);
var reader = new FileReader();
reader.onload=(event:any)=>{
this.imageUrl=event.target.result;
}
reader.readAsDataURL(this.fileToUpload);
}
uploadImage(imageData){
console.log(0)
let name=imageData.name;
let number=imageData.number;
let price=imageData.price;
this.service.uploadImage(this.fileToUpload, name, number, price).subscribe(
data=>{
alert("successfully uploaded");
this.productForm.reset();
this.imageUrl="";
}
);
}
image.service.ts
baseUrl:string="http://localhost:62215/api/product/";
uploadImage(fileToUpload:File, imagename:string, num:string, price:string){
let formData:FormData = new FormData();
formData.append("file",fileToUpload,fileToUpload.name);
formData.append("Imagename",name);
formData.append("Number",num);
formData.append("Price",price);
return this.http.post(this.baseUrl+"UploadImage",formData,this.httpOptions);
}
.NET Web API
ProductController.cs
[HttpPost]
[Route("UploadImage")]
public IHttpActionResult UploadImage()
{
HttpRequest Request = HttpContext.Current.Request;
try
{
if (Request.Files.Count > 0)
{
using (FreeShareEntities obj = new FreeShareEntities())
{
foreach (string file in Request.Files)
{
var postedFile = Request.Files[file];
var filePath = HttpContext.Current.Server.MapPath("~/Images/" + postedFile.FileName);
postedFile.SaveAs(filePath);
ImageDemo image = new ImageDemo();
image.Name = Request["name"];
image.Image = postedFile.FileName;
image.Number = Request["num"];
image.Price = Request["price"];
obj.ImageDemoes.Add(image);
obj.SaveChanges();
}
}
return Ok(true);
}
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
}
return NotFound();
}
Я ожидаю заполнить все поля таблицы базы данных, но не только одно поле.