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

4

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

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

这种方法允许我上传文件。然而,这个方法只是一个单一的操作。我需要能够启动上传并监视其进度。在我的情况下,Uploadify不起作用,因为它使用Flash。我有严格的无Flash要求。
如果用户的浏览器支持HTML 5,我可以采用混合方法,在这种情况下,我将使用File API,否则,我将使用当前的方法。然而,即使使用HTML 5,我也不确定如何启动上传并监视其进度。
有人能帮帮我吗?
谢谢!
2个回答

2

我曾使用Plupload,体验不错。它也能与jQuery UI很好地配合使用。

以下是一些突出的功能:

  • 分块上传
  • 拖放功能
  • PNG调整大小
  • JPEG调整大小
  • 类型过滤
  • 流式上传
  • 多部分上传
  • 文件大小限制
  • 上传进度
  • 自定义标头

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

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

0

你可以看一下Valums AJAX上传。个人我已经使用过很多次,非常满意。

特点

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接