jQuery Uploadify在ASP.NET MVC3中的使用
1、Uploadify简介
Uploadify是基于jQuery的一种上传插件,支持多文件、带进度条显示上传,在项目开发中常被使用。
Uploadify官方网址:http://www.uploadify.com/
2、ASP.NET MVC3中的使用Uploadify
搭建ASP.NET MVC3解决方案如下图,其中使用到的Uploadify为3.1版本:
1>、简单示例
_Layout.cshtml代码:

- <!DOCTYPE html>
- <html>
- <head>
- <title>@ViewBag.Title</title>
- @RenderSection("Header")
- </head>
- <body>
- @RenderBody()
- </body>
- </html>

Index.cshtml代码:

- @{
- ViewBag.Title = "Index";
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
- @section Header{
- <link href="@Url.Content("~/Scripts/uploadify-v3.1/uploadify.css")" rel="stylesheet" type="text/css" />
- <script src="@Url.Content("~/Scripts/jquery-1.8.1.min.js")" type="text/javascript"></script>
- <script src="@Url.Content("~/Scripts/uploadify-v3.1/jquery.uploadify-3.1.min.js")" type="text/javascript"></script>
- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'swf' : '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader' : '/Home/Upload'
- });
- });
- </script>
- <style type="text/css">
- body
- {
- font-size: 12px;
- }
- .tip
- {
- height: 20px;
- border-bottom: 1px solid #CCC;
- margin-bottom: 10px;
- }
- </style>
- }
- <div class="tip">
- jQuey Uploadify上传文件示例:
- </div>
- <input type="file" id="file_upload" name="file_upload" />

HomeController.cs代码:

- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.IO;
- namespace WebUI.Controllers
- {
- public class HomeController : Controller
- {
- //
- // GET: /Home/
- public ActionResult Index()
- {
- return View();
- }
- [AcceptVerbs(HttpVerbs.Post)]
- public JsonResult Upload(HttpPostedFileBase fileData)
- {
- if (fileData != null)
- {
- try
- {
- // 文件上传后的保存路径
- string filePath = Server.MapPath("~/Uploads/");
- if (!Directory.Exists(filePath))
- {
- Directory.CreateDirectory(filePath);
- }
- string fileName = Path.GetFileName(fileData.FileName);// 原始文件名称
- string fileExtension = Path.GetExtension(fileName); // 文件扩展名
- string saveName = Guid.NewGuid().ToString() + fileExtension; // 保存文件名称
- fileData.SaveAs(filePath + saveName);
- return Json(new { Success = true, FileName = fileName, SaveName = saveName });
- }
- catch (Exception ex)
- {
- return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet);
- }
- }
- else
- {
- return Json(new { Success = false, Message = "请选择要上传的文件!" }, JsonRequestBehavior.AllowGet);
- }
- }
- }
- }

上传效果图:
2>、设置上传图片大小
ASP.NET MVC默认情况下,允许上传的文件大小最大为4MB。因此在默认情况下,Uploadify也只能最大上传4MB大小的文件,超过范围则会IO报错提示无法上传。
修改Web.config设置允许上传的最大文件大小:
- <system.web>
- <!--设置最大允许上传文件大小1G-->
- <httpRuntime maxRequestLength= "102400" executionTimeout= "60" />
- </system.web>
修改最大上传文件大小后效果:
3>、Uploadify常用属性设置
auto:是否选择文件后自动上传,默认为true。

- @{
- ViewBag.Title = "Index";
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
- @section Header{
- <link href="@Url.Content("~/Scripts/uploadify-v3.1/uploadify.css")" rel="stylesheet" type="text/css" />
- <script src="@Url.Content("~/Scripts/jquery-1.8.1.min.js")" type="text/javascript"></script>
- <script src="@Url.Content("~/Scripts/uploadify-v3.1/jquery.uploadify-3.1.min.js")" type="text/javascript"></script>
- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'auto' : false,
- 'swf' : '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader' : '/Home/Upload'
- });
- });
- </script>
- <style type="text/css">
- body
- {
- font-size: 12px;
- }
- .tip
- {
- height: 20px;
- border-bottom: 1px solid #CCC;
- margin-bottom: 10px;
- }
- </style>
- }
- <div class="tip">
- jQuey Uploadify上传文件示例:
- </div>
- <div>
- <input type="file" id="file_upload" name="file_upload" />
- </div>
- <div>
- <a href="javascript:$('#file_upload').uploadify('upload');">上传</a>
- </div>

buttonText:设置上传按钮显示文字。

- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'buttonText' : '请选择上传文件',
- 'swf' : '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader' : '/Home/Upload'
- });
- });
- </script>

buttonImage:设置上传按钮背景图片。

- @{
- ViewBag.Title = "Index";
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
- @section Header{
- <link href="@Url.Content("~/Scripts/uploadify-v3.1/uploadify.css")" rel="stylesheet" type="text/css" />
- <script src="@Url.Content("~/Scripts/jquery-1.8.1.min.js")" type="text/javascript"></script>
- <script src="@Url.Content("~/Scripts/uploadify-v3.1/jquery.uploadify-3.1.min.js")" type="text/javascript"></script>
- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'buttonImage': '@Url.Content("~/Scripts/uploadify-v3.1/browse-btn.png")',
- 'swf': '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader': '/Home/Upload'
- });
- });
- </script>
- <style type="text/css">
- body
- {
- font-size: 12px;
- }
- .tip
- {
- height: 20px;
- border-bottom: 1px solid #CCC;
- margin-bottom: 10px;
- }
- .uploadify-button
- {
- background-color: transparent;
- border: none;
- padding: 0;
- }
- .uploadify:hover .uploadify-button
- {
- background-color: transparent;
- }
- </style>
- }
- <div class="tip">
- jQuey Uploadify上传文件示例:
- </div>
- <div>
- <input type="file" id="file_upload" name="file_upload" />
- </div>

multi:是否允许一次选择多个文件一起上传,默认为true。

- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'buttonImage': '@Url.Content("~/Scripts/uploadify-v3.1/browse-btn.png")',
- multi: true,
- 'swf': '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader': '/Home/Upload'
- });
- });
- </script>

fileTypeDesc:设置允许上传图片格式描述;
fileTypeExts:设置允许上传图片格式。

- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'buttonImage': '@Url.Content("~/Scripts/uploadify-v3.1/browse-btn.png")',
- 'fileTypeDesc': '图片文件',
- 'fileTypeExts': '*.gif; *.jpg; *.png',
- 'swf': '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader': '/Home/Upload'
- });
- });
- </script>

removeCompleted:设置已完成上传的文件是否从队列中移除,默认为true。

- $(function() {
- $("#file_upload").uploadify({
- 'removeCompleted' : false,
- 'swf' : '/uploadify/uploadify.swf',
- 'uploader' : '/uploadify/uploadify.php'
- });
- });

queueSizeLimit:设置上传队列中同时允许的上传文件数量,默认为999。

- $(function() {
- $("#file_upload").uploadify({
- 'queueSizeLimit' : 1,
- 'swf' : '/uploadify/uploadify.swf',
- 'uploader' : '/uploadify/uploadify.php'
- });
- });

uploadLimit:设置允许上传的文件数量,默认为999。

- $(function() {
- $("#file_upload").uploadify({
- 'swf' : '/uploadify/uploadify.swf',
- 'uploader' : '/uploadify/uploadify.php',
- 'uploadLimit' : 1
- });
- });

4>、Uploadify常用事件设置
onUploadComplete:单个文件上传完成时触发事件。

- $(function() {
- $("#file_upload").uploadify({
- 'swf' : '/uploadify/uploadify.swf',
- 'uploader' : '/uploadify/uploadify.php',
- 'onUploadComplete' : function(file) {
- alert('The file ' + file.name + ' finished processing.');
- }
- });
- });

onQueueComplete:队列中全部文件上传完成时触发事件。

- $(function() {
- $("#file_upload").uploadify({
- 'swf' : '/uploadify/uploadify.swf',
- 'uploader' : '/uploadify/uploadify.php',
- 'onQueueComplete' : function(queueData) {
- alert(queueData.uploadsSuccessful + ' files were successfully uploaded.');
- }
- });
- });

onUploadSuccess:单个文件上传成功后触发事件。

- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'buttonImage': '@Url.Content("~/Scripts/uploadify-v3.1/browse-btn.png")',
- 'swf': '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader': '/Home/Upload',
- 'onUploadSuccess': function (file, data, response) {
- eval("data=" + data);
- alert('文件 ' + file.name + ' 已经上传成功,并返回 ' + response + ' 保存文件名称为 ' + data.SaveName);
- }
- });
- });
- </script>

4>、Uploadify常用方法
upload:上传文件
cancel:取消上传

- @{
- ViewBag.Title = "Index";
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
- @section Header{
- <link href="@Url.Content("~/Scripts/uploadify-v3.1/uploadify.css")" rel="stylesheet" type="text/css" />
- <script src="@Url.Content("~/Scripts/jquery-1.8.1.min.js")" type="text/javascript"></script>
- <script src="@Url.Content("~/Scripts/uploadify-v3.1/jquery.uploadify-3.1.min.js")" type="text/javascript"></script>
- <script type="text/javascript">
- $(function () {
- $('#file_upload').uploadify({
- 'auto' : false,
- 'buttonImage' : '@Url.Content("~/Scripts/uploadify-v3.1/browse-btn.png")',
- 'swf' : '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")',
- 'uploader' : '/Home/Upload'
- });
- });
- </script>
- <style type="text/css">
- body
- {
- font-size: 12px;
- }
- .tip
- {
- height: 20px;
- border-bottom: 1px solid #CCC;
- margin-bottom: 10px;
- }
- .uploadify-button
- {
- background-color: transparent;
- border: none;
- padding: 0;
- }
- .uploadify:hover .uploadify-button
- {
- background-color: transparent;
- }
- </style>
- }
- <div class="tip">
- jQuey Uploadify上传文件示例:
- </div>
- <div>
- <input type="file" id="file_upload" name="file_upload" />
- </div>
- <div>
- <a href="javascript:$('#file_upload').uploadify('upload');">上传第一个</a>
- <a href="javascript:$('#file_upload').uploadify('upload','*');">上传队列</a>
- <a href="javascript:$('#file_upload').uploadify('cancel');">取消第一个</a>
- <a href="javascript:$('#file_upload').uploadify('cancel', '*');">取消队列</a>
- </div>

3、示例代码附件
jQuery Uploadify在ASP.NET MVC3中的使用的更多相关文章
- jQuery Uploadify在ASP.NET MVC中的使用
感谢http://www.cnblogs.com/libingql/archive/2012/09/11/2681007.html 除此之外,给大家推荐一个: http://gallery.kissy ...
- 使用jQuery Uploadify在ASP.NET 上传附件
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.Uploadify官方网址:http://www.uploadify.com/,在MVC中使用的方法可以参考 jQuer ...
- 在ASP.NET MVC3 中利用Jsonp跨域访问
在ASP.NET MVC3 中利用Jsonp跨域访问 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复 ...
- (转)在ASP.NET MVC3 中利用Jsonp跨域访问
原文地址:http://www.cnblogs.com/skm-blog/p/3431999.html 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用 ...
- 在ASP.NET MVC3 中利用JSONP跨域登录WEB系统
在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复登陆.每次登录都需要输入用户名和密码.最近比较流行的就 ...
- ASP.NET MVC3中Model验证
原文:ASP.NET MVC3中Model验证 概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验 ...
- Asp.net MVC3 中,动态添加filter
Asp.net MVC3 中,动态添加filter filter是attribute,不支持泛型,传入的参数必须是固定的值.总之很受attribute本身的限制. 发现一篇老外的文章,动态设置filt ...
- Asp.net MVC3中全局图片防盗链
怎么样在Asp.Net MVC3中做到全局图片防盗链?如果熟悉Asp.Net的页面生命周期,相信解决这个问题应该很容易.下面就演示一下如何去做? 一.首先是全局的,我们肯定要在Global.asax文 ...
- ASP.NET MVC3中Controller与View之间的数据传递总结
一. Controller向View传递数据 1. 使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...
随机推荐
- list.sort结果是None
错误原因: list.sort()功能是针对列表自己内部进行排序, 不会有返回值, 因此返回为None. 举例说明: In [19]: a=["a","c" ...
- How To:分析ORACLE监听日志中的IP信息
有时候需要分析出ORACLE日志监听中的IP信息,分享一个组合命令,Linux的shell下运行正常. grep "HOST=.*establish.*\* 0" listener ...
- springboot的jsp热部署
使用springboot每次修改jsp都需要重新启动是不是很麻烦呢?以下是解决办法! yml格式 server: servlet: jsp: init-parameters: development: ...
- buf.writeInt8()函数详解
buf.writeInt8(value, offset[, noAssert]) value {Number} 需要被写入到 Buffer 的字节 offset {Number} 0 <= of ...
- sublime 使用笔记
unbuntu安装sublime---------------------------------------------sudo add-apt-repository ppa:webupd8team ...
- Quadtrees(四分树)
uva 297 Quadtrees Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Subm ...
- EF中避免查询重复执行的手段
由于ef有lazyload机制,编写的查询语句往往都没有立即执行,当你轮训结果集的时候才会将查询翻译成database端的sql语句,执行sql将结果返回到方法中.但是,下次再使用前面的结果集的时候, ...
- 【Codeforces 279C】Ladder
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 设pre[i]表示i往前一直递增能递增多远 设aft[i]表示i往后一直递增能递增多远 如果aft[l]+pre[r]>=(r-l+1) ...
- 阿里云服务器Ubuntu 16.04 3安装mysql
.更新系统 apt-get update [注意:要在root用户下] .安装mysql-server apt-get install mysql-serverapt-get install mysq ...
- 数据库中间件MyCat学习总结(2)——MyCat-Web原理介绍
Mycat是一个分库分表的基于java开发的数据库中间件,使用过程中需要有一个监控系统,mycat-web应运而生.mycat-web是一个使用SpringMVC + Mybatis的监控平台,使用常 ...