使用纯HTML和MVC 3上传大文件

时间:2012-01-12 14:44:42

标签: asp.net-mvc-3 html5

我有一个允许用户上传文件的应用程序。其中一些文件可能非常大。因此,我想将文件(如果可能的话)分块并监控其上传进度。目前,我有一个基本的HTML表单,回发到我的MVC控制器

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> files)
{
  // Save file here.
  HttpStatusCodeResult result = new HttpStatusCodeResult(200);
  return result;
}

这种方法允许我上传文件。然而,这个应用程序是一个单一的操作。我需要能够启动上传并监控其进度。在我的情况下,Uploadify不起作用,因为它使用Flash。我有严格的禁止闪光要求。

我对混合方法持开放态度,如果用户的浏览器支持HTML 5,我会使用File API,否则,我会使用我当前的方法。但是,即使使用HTML 5,我也不确定如何启动上传并监控其进度。

有人能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

我对Plupload有很好的体验。它也适用于jQuery UI。

以下是一些突出的功能:

  • Chunking
  • 拖放
  • PNG调整大小
  • JPEG调整大小
  • 类型过滤
  • 流上传
  • 分段上传
  • 文件大小限制
  • 上传进度
  • 自定义标题

它支持以下插件/技术,以实现近乎完整的跨浏览器使用(具有不同程度的功能支持):

  • Flash
  • Gears
  • HTML 5
  • Silverlight
  • BrowserPlus
  • HTML 4

答案 1 :(得分:0)

您可以查看Valums AJAX upload。就个人而言,我已多次使用它并对此非常满意。

  

功能

     
      
  • 多个文件选择,FF,Chrome,Safari中的进度条
  •   
  • 拖放文件选择FF,Chrome
  •   
  • 上传可取消
  •   
  • 没有外部依赖
  •   
  • 不使用Flash
  •   
  • 完全使用https
  •   
  • FF,Chrome,Safari中的键盘支持
  •   
  • 在IE7,8中测试; Firefox 3,3.6,4; Safari4,5;铬; Opera10.60;
  •