MVC3+jquery Uploadify 上传文件

最近做项目用到了上传图片的功能,以前也写过这类代码,不过都是用传统的file标签,今天整理一个好用的插件Uploadify。。都做了一些注释,一看便知。

可以去官网下载最新的:Uploadify下载地址:http://www.uploadify.com/download/

1.引用文件

    <link href="@Url.Content("~/Scripts/uploadify/uploadify.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/uploadify/jquery.uploadify.min.js")" type="text/javascript"></script>   

2.页面文件

 1 @{
 2     ViewBag.Title = "Index";
 3     Layout = "~/Views/Shared/_Layout.cshtml";
 4 }
 5 @section Header{
 6     <link href="@Url.Content("~/Scripts/uploadify/uploadify.css")" rel="stylesheet" type="text/css" />
 7     <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
 8     <script src="@Url.Content("~/Scripts/uploadify/jquery.uploadify.min.js")" type="text/javascript"></script>
 9 }
10 <style type="text/css">
11     body
12     {
13         font-size: 12px;
14     }
15     .tip
16     {
17         height: 20px;
18         border-bottom: 1px solid #CCC;
19         margin-bottom: 10px;
20     }
21 </style>
22 <div class="tip">
23     jQuey Uploadify上传文件示例:
24 </div>
25 <div>
26     <span id="uploadify"></span>
27 </div>
28 <div>
29      <button onclick="javascript:$(‘#uploadify‘).uploadify(‘upload‘,‘*‘);">上传队列</button>
30      <button onclick="javascript:$(‘#uploadify‘).uploadify(‘cancel‘, ‘*‘);">取消队列</button>
31 </div>
32
33 @*<div id="uploadfileQueue" style="margin-top:100px;">
34
35 </div>*@
36 <script type="text/javascript">
37      $(function () {
38          $(‘#uploadify‘).uploadify({
39              debug: false,             //开启调试
40              successTimeout: 99999,            //超时时间
41              formData: {                        //附带值
42                  ‘userid‘: ‘用户id‘,
43                  ‘username‘: ‘用户名‘,
44                  ‘rnd‘: ‘加密密文‘
45              },
46              //queueID: ‘uploadfileQueue‘,   //文件选择后的容器ID
47              uploader: ‘/Home/Upload‘,           // 服务器端处理地址
48              swf: ‘@Url.Content("~/Scripts/uploadify/uploadify.swf")‘,    // 上传使用的 Flash
49              width: 110,                          // 按钮的宽度
50              height: 23,                         // 按钮的高度
51              buttonText: "请选择上传的文件",                 // 按钮上的文字
52              buttonCursor: ‘hand‘,              // 按钮的鼠标图标
53              fileObjName: ‘Filedata‘,            // 上传参数名称
54              // 两个配套使用
55              fileTypeExts: "*.jpg;*.png",             // 扩展名
56              fileTypeDesc: "请选择 jpg png 文件",     // 文件说明
57              auto: false,                // 选择之后,自动开始上传
58              multi: true,               // 是否支持同时上传多个文件
59              queueSizeLimit: 5,          //设置上传队列中同时允许的上传文件数量 允许多文件上传的时候,同时上传文件的个数
60                                         //uploadLimit:设置允许上传的文件数量,默认为999。
61
62              removeCompleted: false,   //设置已完成上传的文件是否从队列中移除,默认为true
63              onQueueComplete: function (queueData) {//队列中全部文件上传完成时触发事件。
64                  alert(queueData.uploadsSuccessful + ‘个文件上传完成‘);
65              },
66              //返回一个错误,选择文件的时候触发
67         onSelectError:function(file, errorCode, errorMsg){
68             switch(errorCode) {
69                 case -100:
70                     alert("上传的文件数量已经超出系统限制的" + $(‘#uploadify‘).uploadify(‘settings‘, ‘queueSizeLimit‘) + "个文件!");
71                     break;
72                 case -110:
73                     alert("文件 [" + file.name + "] 大小超出系统限制的" + $(‘#uploadify‘).uploadify(‘settings‘, ‘fileSizeLimit‘) + "大小!");
74                     break;
75                 case -120:
76                     alert("文件 ["+file.name+"] 大小异常!");
77                     break;
78                 case -130:
79                     alert("文件 ["+file.name+"] 类型不正确!");
80                     break;
81             }
82         },
83         onFallback:function(){
84             alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。"); //检测FLASH失败调用
85         },
86         onUploadSuccess: function (file, data, response) { //上传到服务器,服务器返回相应信息到data里
87             alert(data);
88         }
89
90          });
91      });
92 </script>

页面视图

3.控制器方法

 1   public ActionResult Upload(HttpPostedFileBase fileData, string formData)
 2         {
 3             if (fileData != null)
 4             {
 5                 try
 6                 {
 7                     // 文件上传后的保存路径
 8                     string filePath = Server.MapPath("~/Uploads/");
 9                     if (!Directory.Exists(filePath))
10                     {
11                         Directory.CreateDirectory(filePath);
12                     }
13                     string fileName = Path.GetFileName(fileData.FileName);// 原始文件名称
14                     string fileExtension = Path.GetExtension(fileName); // 文件扩展名
15                     string saveName = Guid.NewGuid().ToString() + fileExtension; // 保存文件名称
16                     fileData.SaveAs(filePath + saveName);
17                     return Json(new { Success = true, FileName = fileName, SaveName = saveName });
18                 }
19                 catch (Exception ex)
20                 {
21                     return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet);
22                 }
23             }
24             else
25             {
26
27                 return Json(new { Success = false, Message = "请选择要上传的文件!" }, JsonRequestBehavior.AllowGet);
28             }
29         }

控制器方法

最后:效果图

源码下载地址:http://files.cnblogs.com/itxiaoyan2013/UploadFile.zip

MVC3+jquery Uploadify 上传文件,布布扣,bubuko.com

时间: 2025-01-16 05:47:05

MVC3+jquery Uploadify 上传文件的相关文章

[Plugin] JQuery.uploadify上传文件插件的使用详解For ASP.NET

URL:http://www.cnblogs.com/xiaopin/archive/2010/01/21/1653523.html 今天下午整理文件上传的例子,感觉收集到的例子都很不人性话,后来找到一个还可以的,本来想改成类似于腾讯QQ相册那种方式,仔细看了一下是Flash的, 而且那个极速上传插件也不知道用什么做的?问了一下,说是什么cgi. 搞得一头雾水! 后来朋友推荐了一个这个叫uploadify的上传插件,似乎挺好,就到官方下了个示例运行,感觉挺好,自己再稍加美化一下就OK 了..!

jquery.uploadify上传文件配置详解(asp.net mvc)

页面源码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jquery upload上传文件(asp.net mvc)配置</title> <script src="Resources/jquery.js"

SpringMVC+jquery.uploadify 上传文件

前言 以前用Asp.net MVC+uploadify上传文件,最近学习SpringMVC,所以就用SpringMVC+uploadify做个上传文件的demo. 刚开始用form表单的方式提交,在Controller Action中用@RequestParam MultipartFile file就能拿到上传文件信息.后我直接使用uploadify的方式上传,接口没有做任何调整,上传的过程中报http400, 客户端的请求不符合接口的要求,表单post提交时报文参数是以Form Data方式,

jquery uploadify上传文件插件导致浏览器崩溃问题解决方法

自谷歌浏览器更新到(版本39.0.2171.99 )后,访问上传文件界面浏览器就崩溃了,而其他的浏览器不会出现问题. 出现这种问题的原因就是谷歌浏览器缓存问题,但将访问该jsp页面路径添加上时间戳后无法解决问题,将界面引入uploadify.js中也添加了个随机变量还是不行.最后将引入js换成下面形式就解决了: 代码如下: [javascript] view plaincopyprint? document.write("<script type='text/javascript' &qu

jquery uploadify上传文件时报HTTP401错误

1.http 401错误简单介绍 当用浏览器访问一个服务地址时,会向服务发送一个http请求,服务变会处理请求,并给浏览器返回一个状态码,每个状态码代表的不同的服务响应状态.     比如:200 代码响应成功,404资源未找到 这里的401就代表没有访问资源的权限状态. 2.401错误分析原因 正如上面介绍的一样,uploadify发出了上传请求,但服务端认为请求没有相应的权限. 现在大多数的身份验证用的是session,如果浏览器的cookie是打开的,那么sessionid的值是存在coo

Jquery.Uploadify 上传文件插件的使用

事先要将uploadify插件引入到解决方案中,可去uploadify官网下载:此例子是在MVC中进行的实现:脚本代码段: <script src="~/Scripts/jquery-1.11.1.min.js"></script><script src="~/Scripts/Common/uploadify/[email protected](new Random().Next())[email protected](new Random().

jQuery Uploadify上传插件

jQuery Uploadify在ASP.NET MVC3中的使用 1.Uploadify简介 Uploadify是基于jQuery的一种上传插件,支持多文件.带进度条显示上传,在项目开发中常被使用. Uploadify官方网址:http://www.uploadify.com/ jQuery Uploadify上传插件

uploadify上传文件(2)--基础语法

隔了好久,因为最近搬家,离开从小生活的城市,来到杭州.找工作.找房子等诸多事宜耽误了这篇文章许久.今天难得闲暇在旅馆中完成uploadify上传文件系列的第二篇--uploadify使用的基础语法. 下面我们看一看如何在你的项目上部署uploadify: 本文目录: 1.使用步骤 2.属性 3.事件 4.方法 使用步骤 1.我们假定上传控件部署在网站根目录下的upload. php中,uploadify文件夹位于网站根目录中,上传的文件保存在根目录下的upload文件夹中,uploadify文件

ASP.NET Uploadify 上传文件过大报错

Uploadify上传文件原来很早之前用过,没发现什么问题.今天再使用过程中,当文件大于30M的时候就会报错404.查看错误消息提示配置最大上传太小了.需要修改. 记得原来配置上传文件大小在这里:<httpRuntime maxRequestLength="2097100" executionTimeout="3600"/> 配置即可.可是当我这里修改了之后发现还是错误.就想是不是上传控件本身有限制,看到我的有limitSize:30 已经设置了大小,但