将图像转换为字节[] asp.net mvc

时间:2018-10-19 07:24:08

标签: javascript asp.net-mvc binaryreader

我需要将图像存储在byte[]的数据库中

我正在使用ajax将图像从Javascript发送到mvc controller

在我的javascript中

var files = $("#MyImage").get(0).files;
formData.append('files', files);

在我的MVC控制器中

using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
{
        fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
}

是存储图像的正确方法还是我做错了?

请提出建议

1 个答案:

答案 0 :(得分:0)

您可以在剃刀上张贴HttpPostedFileBase

if (upload != null)
{
    using (var inputStream = upload.InputStream)
    {
        var memoryStream = inputStream as MemoryStream;
        if (memoryStream == null)
        {
            memoryStream = new MemoryStream();
            inputStream.CopyTo(memoryStream);
        }
        var data = memoryStream.ToArray();
}

方法签名应该是这样的

[HttpPost]
public ActionResult Foo(HttpPostedFileBase upload)
{
}

还有剃须刀的一面:

@using (Html.BeginForm("Foo", "ControllerName", FormMethod.Post, new { @enctype = "multipart/form-data" }))
{

}