我非常喜欢MVVM模式,特别是在使用ASP.NET MVC框架时(在本例中为v2预览2)。
但我很好奇是否有人知道在上传文件时如何使用它?
public class MyViewModel
{
public WhatTypeShouldThisBe MyFileUpload { get; set; }
}
答案 0 :(得分:3)
我有一个production asp.net mvc网站运行我写的jQuery多文件上传器。 This answer包含大部分代码,因此应该开始在MVC中上传。这个问题实际上是要求将上传的文件存储在Stream
中并使用byte[]
,但您会在答案中看到我的代码如何应用于这两种情况。
答案 1 :(得分:1)
如果您使用标准组件(System.IO.Path),通常 HttpFileCollection 就足够了。
请注意 HttpFileCollection 是 HttpPostedFile 的集合,即您可以一次上传多个文件。
答案 2 :(得分:1)
我认为byte []足以存储上传的文件,例如在我的上传操作中,我会这样做:
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files(file) as HttpPostedFileBase;
if (hpf.ContentLength == 0)
{
continue;
}
//This would be the part to get the data and save it to the view
byte[] origImageData = new byte[(int)hpf.ContentLength - 1 + 1];
hpf.InputStream.Read(origImageData, 0, (int)hpf.ContentLength);
}
希望它有所帮助。