Asp.net mvc 以表单上传图像并在MVC4上显示
Asp.net mvc 以表单上传图像并在MVC4上显示,asp.net-mvc,Asp.net Mvc,存储用户上传的图像并将其显示在我的网站上的最佳方式是什么? 将其作为二进制存储在DB中。那么我应该如何用“img”来显示它呢? 我想我应该以某种方式将其写入目录,然后将其地址作为'img'的'src'属性传递。 我可以将其存储在web服务器的某个位置,将图像的地址存储在数据库中。然后我只需在`src`属性中指定数据库中的地址。 其他方式?! 我认为第二种方式更方便。 还有一个问题 在这两种情况下,我如何以html格式上传这些图像?@Html没有任何类似于@Html.FileFor(…)的内容,我
存储用户上传的图像并将其显示在我的网站上的最佳方式是什么?
我想我应该以某种方式将其写入目录,然后将其地址作为'img'的'src'属性传递。
还有一个问题
在这两种情况下,我如何以html格式上传这些图像?
@Html
没有任何类似于@Html.FileFor(…)
的内容,我如何在操作中获取
的数据?我很感激你的建议 在我看来,第二种方式更方便 我也这么认为 在这两种情况下,我如何以html格式上传这些图像 很简单。与往常一样,在ASP.NET MVC应用程序中,您可以从设计视图模型开始:
public class MyViewModel
{
[Required]
public HttpPostedFileBase File { get; set; }
}
然后,您可以拥有一个具有2个操作(一个渲染视图,另一个处理文件上载)的控制器:
最后,您将拥有一个相应的强类型视图,该视图将获取用于上载文件的表单:
@model MyViewModel
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div>
@Html.LabelFor(x => x.File)
@Html.TextBoxFor(x => x.File, new { type = "file" })
@Html.ValidationMessageFor(x => x.File)
</div>
<button type="sybmit">Upload</button>
}
@model MyViewModel
@使用(Html.BeginForm(null,null,FormMethod.Post,new{enctype=“multipart/formdata”}))
{
@LabelFor(x=>x.File)
@Html.TextBoxFor(x=>x.File,新的{type=“File”})
@Html.ValidationMessageFor(x=>x.File)
上传
}
另外,我建议您阅读ASP.NET MVC工作原理中的文件上载说明。我设计了DB来存储图像地址,并将图像存储在web服务器中(不过更改它并不困难)。我现在面临的主要问题是获取图像本身的数据。它用于将二进制数据存储为ASCII文本。在大多数RDBMS中对BLOB的支持都很糟糕,所以这是一个很好的选择。在我将该属性添加到EF生成的模型后,发生了一些事情。现在,每当我从DB请求一些东西时,我得到的值不能为null异常。参数:键。在类型定义后使用“?”方法可以为空使用:公共类型?图像{get;set;}
@model MyViewModel
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div>
@Html.LabelFor(x => x.File)
@Html.TextBoxFor(x => x.File, new { type = "file" })
@Html.ValidationMessageFor(x => x.File)
</div>
<button type="sybmit">Upload</button>
}