HttpPostedFileBase to byte array make exception

本文关键字:make exception array byte to HttpPostedFileBase | 更新日期: 2023-09-27 18:37:23

>我正在使用 mvc 4

我有这个模型:ViewModelOne

public HttpPostedFileBase passportImage { get; set; }

另外,我有这个模型:modelViewTWO

public byte[] passportImage { get; set; }

我有这个视图女巫使用视图模型一作为模型

@Html.TextBoxFor(model => model.passportImage, new { placeholder = "Uploadt Your Passport", type = "file"})

我有这个控制器:

public string Register(ViewModelOne newT) {
modelViewTWO second = new modelViewTWO();
byte[] data;
            using (Stream inputStream = newT.passportImage.InputStream)
            {
                MemoryStream memoryStream = inputStream as MemoryStream;
                if (memoryStream == null)
                {
                    memoryStream = new MemoryStream();
                    inputStream.CopyTo(memoryStream);
                }
                data = memoryStream.ToArray();
            }
            second.passportImage = data;
}

我得到了这个例外

对象引用未设置为对象的实例。

在这一行中

newT.passportImage.InputStream

编辑

我检查了newT.passportImage,它是空的。 为什么?

HttpPostedFileBase to byte array make exception

您需要

enctype 属性添加到表单标记中,以便数据也发布:

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

(将前两个参数设置为 null 将发布表单所在的相同操作和控制器。