ASP.NET MVC 似乎正确地在 HTML 表单的文件输入字段和 HttpPostedFileBase 之间自动绑定。另一方面,它不能从文件输入字段绑定到字节数组。我试过了,但它发出了异常——一些关于无法转换为 Base64 的问题。以前我的模型类上只有字节数组属性,因为后来我需要它来将对象序列化为 XML 文件。
现在我想出了这个解决方法,它工作正常,但我不确定这是否可以:
[DataContract]
public class Section : BaseContentObject
{
...
[DataMember]
public byte[] ImageBytes;
private HttpPostedFileBase _imageFile;
public HttpPostedFileBase ImageFile
{
get { return _imageFile; }
set
{
_imageFile = value;
if (value.ContentLength > 0)
{
byte[] buffer = new byte[value.ContentLength];
value.InputStream.Read(buffer, 0, value.ContentLength);
ImageBytes = buffer;
ImageType = value.ContentType;
}
}
}
[DataMember]
public string ImageType { get; set; }
}