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

converting image into byte[] asp.net mvc

我需要将图像存储在 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);
}

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

请推荐

您可以 post 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" }))
{

}