我的文件上传存在问题,其中一个字段(DocumentDepartment)值返回null,同时保存所有其他字段信息。
请帮助
我的模型有以下代码:
public class Document
{
public int DocumentID { get; set; }
public string DocumentName { get; set; }
public string DocumentDepartment { get; set; }
public byte[] DocumentType { get; set; }
}
我的控制器中的代码:
[HttpPost]
public ActionResult Create(HttpPostedFileBase document)
{
// verify user selected a file
if (document != null && document.ContentLength > 0)
{
//Get file information
var documentName = Path.GetFileName(document.FileName);
var contentLength = document.ContentLength;
var contenttype = document.ContentType;
var datadept = DocumentDepartment;
//Get the file data
byte[] data = new byte[] { };
using (var binaryReader = new BinaryReader(document.InputStream))
{
data = binaryReader.ReadBytes(document.ContentLength);
}
//Save to the database
Document doc = new Document();
doc.DocumentDepartment = datadept;
doc.DocumentName = documentName;
doc.DocumentType = data;
//show success....
db.Document.Add(doc);
db.SaveChanges();
ViewData["message"] = document.FileName + "has been saved.";
return RedirectToAction("Index");
}
return View(document);
}
答案 0 :(得分:0)
好的,我认为您不了解MVC和HTML表单的工作方式。如果您收到HttpPostedFile,它只是收到的二进制数据的包装器。您需要将文件从字节流反序列化为最初创建的类型化对象。
您的对象是否具有序列化/反序列化功能?
如果不考虑在这里查看读取和写入类型对象:
http://msdn.microsoft.com/en-us/library/vstudio/ms233843.aspx