jQuery Uploadify在ASP.NET MVC3中的使用

来源:互联网 发布:女性从事数据分析师 编辑:程序博客网 时间:2024/04/30 02:34

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>
复制代码

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 长春花长得太高怎么办 四季梅叶子蔫了怎么办 吸财树叶子蔫了怎么办 民族团结手抄报间单有漂亮怎么办 鹦鹉尾巴毛掉了怎么办 羊绒衫领子打太大了怎么办 内裤洗了还有一股味道怎么办 月经下不来内裤上总有脏东西怎么办 夏天外衣薄露出内衣怎么办 金毛体味很重怎么办 直筒连衣裙太短怎么办 托班社会下雨了怎么办 托班下雨了怎么办教案 吃鸡界面有鼠标怎么办 老年机成英语了怎么办 手机成了英语了怎么办 塑料袋融化粘到衣服上怎么办 厕所被卫生纸堵了怎么办 钻石画的胶不粘了怎么办 客厅沙发选大了怎么办 连衣裙腰大了怎么办呀 憋尿后出现尿急尿涨怎么办 脚有酸酸的味道怎么办 三星手机home键失灵怎么办 三星s6返回键失灵怎么办 三星s7屏幕漏液怎么办 三星s8出现蓝框怎么办 三星手机短信图标没了怎么办 ps没有足够的ram怎么办 ps性能调不了是怎么办 苹果6p照相模糊怎么办 相框玻璃碎了怎么办 word文档加密后忘记密码怎么办 手机wps密码忘了怎么办 苹果手表忘了密码怎么办 苹果系统忘了密码怎么办 ps画板建小了怎么办 wps表格密码忘了怎么办 word文档变成虚的怎么办 wps论文中表格跨页怎么办 word文档复制过来有边框怎么办