您的位置:首页 > Web前端 > JQuery

ASP.NET MVC 4 中Jquery上传插件Uploadify简单使用-版本:3.2.1

2017-09-11 20:51 851 查看
1.官网下载开发包:http://www.uploadify.com/download/,选择免费的Flash版本:



2.解压后,需要用到以下几个文件:



需要修改uploadify.css中取消上传按钮的背景图片路径:



.uploadify-queue-item .cancel a {
background: url('../img/uploadify-cancel.png') 0 0 no-repeat;
float: right;
height:    16px;
text-indent: -9999px;
width: 16px;
}




3.页面添加样式表和脚本库的引用:

<link href="~/Content/uploadify/uploadify.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Content/uploadify/jquery.uploadify.min.js"></script> 


4.页面添加用于生成上传按钮的标签:

<span id="btn_upload"></span>


 5.初始化,生成按钮:



1 $(function () {
2     $('#btn_upload').uploadify({
3         uploader: '/article/upload',            // 服务器处理地址
4         swf: '/Content/uploadify/uploadify.swf',
5         buttonText: "选择文件",                  //按钮文字
6         height: 34,                             //按钮高度
7         width: 82,                              //按钮宽度
8         fileTypeExts: "*.jpg;*.png;",           //允许的文件类型
9         fileTypeDesc: "请选择图片文件",           //文件说明
10         formData: { "imgType": "normal" }, //提交给服务器端的参数
11         onUploadSuccess: function (file, data, response) {   //一个文件上传成功后的响应事件处理
12             var data = $.parseJSON(data);
13             alert(data.imgpath);
14         }
15     });
16 });




6.后台代码:



1 public ActionResult Upload(HttpPostedFileBase Filedata)
2 {
3     // 没有文件上传,直接返回
4     if (Filedata == null || string.IsNullOrEmpty(Filedata.FileName) || Filedata.ContentLength == 0)
5     {
6         return HttpNotFound();
7     }
8
9     //获取文件完整文件名(包含绝对路径)
10     //文件存放路径格式:/files/upload/{日期}/{md5}.{后缀名}
11     //例如:/files/upload/20130913/43CA215D947F8C1F1DDFCED383C4D706.jpg
12     string fileMD5 = CommonFuncs.GetStreamMD5(Filedata.InputStream);
13     string FileEextension = Path.GetExtension(Filedata.FileName);
14     string uploadDate = DateTime.Now.ToString("yyyyMMdd");
15
16     string imgType = Request["imgType"];
17     string virtualPath = "/";
18     if (imgType == "normal")
19     {
20         virtualPath = string.Format("~/files/upload/{0}/{1}{2}", uploadDate, fileMD5, FileEextension);
21     }
22     else
23     {
24         virtualPath = string.Format("~/files/upload2/{0}/{1}{2}", uploadDate, fileMD5, FileEextension);
25     }
26     string fullFileName = this.Server.MapPath(virtualPath);
27
28     //创建文件夹,保存文件
29     string path = Path.GetDirectoryName(fullFileName);
30     Directory.CreateDirectory(path);
31     if (!System.IO.File.Exists(fullFileName))
32     {
33         Filedata.SaveAs(fullFileName);
34     }
35
36     var data = new { imgtype = imgType, imgpath = virtualPath.Remove(0, 1) };
37     return Json(data, JsonRequestBehavior.AllowGet);
38     }
39 }




7.相关参数说明:
uploader: '/article/upload'  请求地址,对应于后台进行处理的Action;
formData:{ "imgType":"normal" }  参数可以动态设置,一般在onUploadStart事件中进行处理:

onUploadStart:function(file){
$("#btn_upload").uploadify("settings", "formData", { "imgType": "other","imgMode":"big") });
}


如果参数名与初始化的formData中一样,参数值将覆盖,否则添加。动态设置的方法在开始上传之前执行都是可以的,该试例在两个checkbox(通过bootstrap-switch美化)的状态切换时进行设置:



$('#img_mode').on('switch-change', function (e, data) {
$("#btn_upload").uploadify("settings", "formData", { "imgMode": (data.value ? "small" : "big") });
});
$('#img_type').on('switch-change', function (e, data) {
$("#btn_upload").uploadify("settings", "formData", { "imgType": (data.value ? "normal" : "big") });
});




 

onUploadSuccess事件处理函数的3个参数:file、data、response
file - 包含原始文件的信息;
response - 后台返回true或false;
data - 后台返回的数据,试例中为Json对象;

其他详细参数,参考官方文档:http://www.uploadify.com/documentation/

 8.效果演示:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐