HttpPostedFileBase到字节数组使异常

时间:2013-10-28 21:42:04

标签: c# asp.net-mvc asp.net-mvc-4

我正在使用mvc 4

我有这个模型:ViewModelOne

public HttpPostedFileBase passportImage { get; set; }

另外,我有这个模型:modelViewTWO

public byte[] passportImage { get; set; }

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

@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并且它是null。为什么呢?

1 个答案:

答案 0 :(得分:1)

您需要将enctype属性添加到表单标记中,以便发布数据:

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

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