我有一个mvc 5应用程序,其中一个产品有一个或多个images.in在创建表单中,我想在保存之前上传产品的图像。
我正在尝试使用临时文件夹保存图像,保存产品后,我们将图像保存在数据库中,但我认为这不是最佳解决方案
public ActionResult ProductPictureAdd(int pictureId, int productId)
{
if (pictureId == 0)
throw new ArgumentException();
var product = _productService.GetById(productId);
if (product == null)
throw new ArgumentException("No product found with the specified id");
if (_workContext.CurrentUser != null && product.UserId != _workContext.CurrentUser.ID)
return RedirectToAction("List");
_productService.InsertProductPicture(new ProductPicture
{
PictureId = pictureId,
ProductId = productId,
CreatedOnUtc = DateTime.UtcNow,
UpdatedOnUtc = DateTime.UtcNow
});
return Json(new { Result = true }, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
有几种方法可以做到,但有一句话引起了我的注意:
我想在保存之前上传产品图片
这对我来说意味着您应该使用AJAX上传图像。我在前面写的这篇文章中解释了如何做到这一点:http://davidsonsousa.net/en/post/how-to-upload-a-file-using-mvc-3-and-ajax
我们将图片保存在数据库中,但我认为这不是最好的解决方案
这取决于你想要什么。我通常将图像保存到App_Data
,然后创建一个处理程序来获取它们。但是我会将它们保存到数据库中,没有任何问题,以防我因为项目限制而无法将它们保存在任何文件夹中。