从控制器检索图像路径并传递给 HttpPostedFileBase 图像模型 ASP.Net MVC

亚英

我是 ASP.Net MVC 的新手,正在处理数据库中的图像列。我的问题是如何从控制器检索图像路径并发送到 HttpPostedFileBase 图像模型?我在我的代码中收到错误,告诉我Image = row.Image

无法将类型“字符串”隐式转换为“system.web.httppostedfilebase”

这是我的代码:

控制器

public ActionResult CategoryForm(int? Id, int CategoryGroupId)
{
if (Id != null)
{
model = (from row in db.Categories
         where row.Id == Id
         select new NewCategoryViewModel
         {
             Id = row.Id,
             CategoryGroupId = CategoryGroupId,
             Name = row.Name,
             Description = row.Description,
             Image = row.Image,
             Status = row.Status,
             isMain = row.isMain
         }).Single();
}
 return PartialView("_CategoryFormPartialView", model);
}

模型

public class NewCategoryViewModel
{
    public int Id { get; set; }
    public int CategoryGroupId { get; set; }

    [Required]
    public string Name { get; set; }
    public string Description { get; set; }

    public HttpPostedFileBase Image { get; set; }

    [Required]
    public bool Status { get; set; }

    [Required]
    [Display (Name = "Display as main category?")]
    public bool isMain { get; set; }
}

谢谢你帮助我。

壳牌08

首先,我强烈建议您不要将图像存储在您的数据库中。这是非常低效的,你的数据库的性能会急剧下降。我的建议是将图像上传到服务器并将参考保存在您的数据库中。这是我必须将图像上传到保存在日期结构文件夹 [YYYY/MM/DD] 中的服务器的链接

此外,如果数据库返回的是字符串而不是字节数组,则可能您正在保存文件名而不是文件。我建议阅读这篇文章只是为了确认您正在保存文件。

来自数据库的图像不是 HttpPostedFileBase 类型。您需要转换文件。

如果您使用 SQL Server 的图像字段,则需要使用字节数组并将图像转换为 MemoryStream。

模型:

  public byte[] Image { get; set; }

控制器:

Image = ConvertToImage(row.Image),


private HttpPostedFileBase ConvertToImage(byte[] image)
{
    System.IO.File.ReadAllBytes(image);
    return(HttpPostedFileBase)new MemoryPostedFile(bytes);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ASP.Net MVC:如何显示模型中的字节数组图像

ASP.NET MVC控制器可以返回图像吗?

在ASP.NET MVC中将模型从View传递给控制器

ASP.NET-Razor从模型获取图像

Asp.Net MVC:为什么我的视图将NULL模型传递回控制器?

ASP.Net MVC 5在表单发布时将初始模型参数传递给控制器

ASP.NET C#MVC将值从控制器传递给cshtml

在Asp.net MVC控制器中上传图像

ASP.NET MVC 5 HttpPostedFileBase在模型中始终为null

在Entity Framework和ASP.NET MVC中使用模型和httppostedfilebase时发生NullException

ASP.NET Core MVC-从视图将模型数据传递回控制器

ASP.NET MVC中的可选HttpPostedFileBase

ASP.NET MVC控制器未使用ModelView将正确的值传递给PartialView

AngularJS和asp.net MVC-将数据传递给控制器?

ASP.NET MVC使用Ajax将整个模型传递给控制器

如何将ID从角度视图传递给ASP.NET MVC控制器?

ASP.NET MVC DropDownListFor传递给控制器的类型

将图像传递到控制器ASP.NET MVC

如何在ASP .NET MVC中将特定行的值传递给控制器方法

应从Angular 2中传递与Asp Net MVC中的HttpPostedFileBase类型匹配的哪种类型的数据?

如何在asp.net mvc 中将复杂模型传递回控制器

asp.net mvc-5 HttpPostedFileBase 为空

通过按钮 MVC Net Core 将 IEnumerable 模型传递给控制器

如何使用 Jquery 和 ajax 将 id 传递给 MVC 控制器 [ASP.NET]

asp.net mvc 如何将视图模型和输入文本传递给控制器?

Asp.net mvc5 hidden for 不将数据传递给控制器

无法将模型从 ASP.NET MVC 中的视图传递回控制器。收到时模型为空

使用 C# 将数据传递给 ASP.NET MVC 中的控制器

ASP.NET MVC - Ajax 将空值传递给控制器