MVC 使用jQuery上传文件

在ASP.NET MVC Framework中,上传文件真是超级简单,看代码:

View

<formaction="<%=Url.Action("Process") %>"enctype="multipart/form-data"method="post"><inputname="up1"type="file" /><inputtype="submit" /></form>

Action

publicActionResultProcess(HttpPostedFileBaseup1){//参数名与name名一致即可up1.SaveAs(Server.MapPath("~/"+ up1.FileName));returnContent("上传成功,文件名为:"+up1.FileName);}

当然这是MVC框架简化了我们的操作,实际上内部实现跟以前的是一样的,多文件上传冒似不能用这种方式实现,只能使用Request.Files["up1"]来获取!

无刷新上传jQuery

jQuery是个好东西,使用jQuery.form.js可以进入完全无刷新的世界,最基本使用的方法:

$('#myFormId').ajaxForm();

当你点击submit按钮后,你的客户端提交就变成无刷新的了…更高级的使用方法和下载地址请看官方地址:http://malsup.com/jquery/form/

使用了jquery.form.js,就可以使用无刷新上传了,不论什么无刷新上传,它的原理始终还是在页面中动态嵌入一个iframe,使用 iframe去上传文件。。这个时候就要注意一个问题了,iframe请求的服务器端地址不能输入浏览器无法打开的ContentType,否则浏览器会弹出下载框,如果上传完后,你输出一个JSON数据,浏览器将无法打开它。会弹出下载框。可以看看官方的例子!看看他是怎么做的!

SwfUpload

SWFUpload最初是由Vinterwebb.se开发的一个客户端的上传工具. 它结合了FLASH和JavaScript的功能,以提供一种超越了传统的浏览器中<input type=”file” />标签提供的文件上传功能。

SWFUpload提供的主要功能:

在文件选择对话框中能够进行文件多选页面无刷新的上传提供上传进度的事件回调,实时显示上传进度良好的浏览器兼容性采用了命名空间以兼容其它JS的库 (例如 jQuery, Prototype, 等等)对FLASH8和FLASH9播放器的支持

说明文档地址

SwfUpload DEMO下载

JQuery和SwfUpload是客户端的东西,所以说在任何WEB开发语言上都可以使用上了,SwfUpload还可以实现时时进度条,如果你玩过flick的图片上传,就知道这样的体验是多么的棒了!

posted @ 2013-10-19 09:46  kongfl888  阅读(872)  评论(0编辑  收藏  举报