MVC5:使用Ajax和HTML5实现文件上传功能

引言

在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能。

基本功能:实现带有进度条的文件上传功能

高级功能:通过拖拽文件的操作实现多个文件上传功能

背景

HTML5提供了一种标准的访问本地文件的方法——File API规格说明,通过调用File API 能够访问文件信息,也可以利用客户端来验证上传文件的类型和大小是否规范。

该规格说明包含以下几个接口来使用文件:

File接口:具有文件的“读权限”,可以获取文件名,类型,大小等。

FileList接口:指单独选定的文件列表,可以通过<input type="file">或拖拽呈现在用户界面供用户选择。

XMLHTTPRequest2是HTML5的无名英雄,,XHR2与XMLHttpRequest大体相同,但同时也添加了很多新功能,如下:

1. 增加了上传/下载二进制数据

2. 增加了上传过程中Progess (进度条)事件,该事件包含多部分的信息:

3. 跨资源共享请求

这些新特性都使得Ajax和HTML5很好的协作,让文件上传变得非常简单,不再需要使用Flash Player、外部插件或html的<form>标签就可以完成,根据服务器端就可以显示上传进度条。

本文会编写一个小型应用程序,能够实现以下功能:

首先我们需要检验浏览器是否支持XHR2,File API,FormData及拖拽操作。

编写代码==(selectedFile.size > 1048576) {(selectedFile.size > 1024) {myXhr;(e.lengthComputable) {JsonResult Upload(HttpPostedFileBase uploadedFile)[] FileByteArray = (operationResult.Success)Json(Json((selectedFiles) {(err != {+ ;(file.size > 1024) {FileSize;;(!selectedFiles[i].type.match(JsonResult UplodMultiple(HttpPostedFileBase[] uploadedFiles)

又或者是后天的,我们不断学习,努力进取的路途中辛苦寻到的武器。

MVC5:使用Ajax和HTML5实现文件上传功能

相关文章:

你感兴趣的文章:

标签云: