首页 / JQUERY / Jquery自定义图片上传插件
Jquery自定义图片上传插件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Jquery自定义图片上传插件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4502字,纯文字阅读大概需要7分钟。
内容图文
![Jquery自定义图片上传插件](/upload/InfoBanner/zyjiaocheng/1180/8029627887f148babf4eecdf2206e651.jpg)
1 概述
编写后台网站程序大多数用到文件上传,可是传统的文件上传控件不是外观不够优雅,就是性能不太好看,翻阅众多文件上传控件的文章,发现可以这样去定义一个文件上传控件,实现的文件上传的效果图如下:
2、该图片上传插件实现功能如下:
1>能够异步上传,上传成功之后,服务器返回响应结果;能够定义上传前和上传后自定义处理方式;
2>能够实现文件格式判断,过滤非图片文件;
3>服务端能够过滤重复上传的图片;
3、页面代码分析:
1>、Jquery图片上传插件代码如下:
// 选中文件, 提交表单(开始上传) (function ($) { var iframe; var form; var opeartData=null; $.uploadDefault = { url: ‘‘, fileName: ‘filedata‘, dataType: ‘json‘, imgshow: ‘‘, onSend: function(){ returntrue; }, onSubmit: function () { returntrue; }, onComplate: function () { returntrue; } }; $.UpLoadForm = { //图片格式验证 $PicChange: function (obj) { if (opeartData.imgshow != null && opeartData.imgshow != ‘‘) { $("#" + opeartData.imgshow).val($(obj).val()); } }, //判断pic格式是否正确 $IsPicCheck: function (fileName) { if (fileName != null && fileName != "") { //lastIndexOf如果没有搜索到则返回为-1if (fileName.lastIndexOf(".") != -1) { var fileType = (fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length)).toLowerCase(); var suppotFile = new Array(); suppotFile[0] = "jpg"; suppotFile[1] = "gif"; suppotFile[2] = "bmp"; suppotFile[3] = "png"; suppotFile[4] = "jpeg"; for (var i = 0; i < suppotFile.length; i++) { if (suppotFile[i] == fileType) { returntrue; } else { continue; } } returnfalse; } else { returnfalse; } } }, $ImgUpLoad: function () { if (opeartData == null) { //没有选择图片或者图片已经上传return; } opeartData = $.extend($.uploadDefault, opeartData); var canSend = opeartData.onSend(); if (!canSend) { return; } if (!opeartData.onSubmit())//图片验证 { return; } form.submit(); iframe.load(function() { var contents = $(this).contents().get(0); var data = $(contents).find(‘body‘).text(); if (‘json‘ == opeartData.dataType) { data = window.eval(‘(‘ + data + ‘)‘); } opeartData.onComplate(data); setTimeout(function() { iframe.remove(); form.remove(); opeartData = null; }, 5000); }); }, $OpenFIle: function (options) { opeartData = $.extend($.uploadDefault, options); if (opeartData.url == ‘‘) { return; } var frameName = ‘upload_frame_0‘; var formName = ‘upload_form_0‘; if ($("#" + formName).length > 0) { iframe = $("#" + frameName); form = $("#" + formName); } else { iframe = $(‘<iframe style="position:absolute;top:-9999px" id="‘ + frameName + ‘" />‘).attr(‘name‘, frameName); form = $(‘<form method="post" style="display:none;" id="‘ + formName + ‘" enctype="multipart/form-data" />‘).attr(‘name‘, ‘form_‘ + frameName); form.attr("target", frameName).attr(‘action‘, opeartData.url); // form中增加数据域var formHtml = ‘<input type="file" name="‘ + opeartData.fileName + ‘" onchange="$.UpLoadForm.$PicChange(this)")"/>‘; form.append(formHtml); iframe.appendTo("body"); form.appendTo("body"); } var fileInput = $(‘input[type=file][name=‘ + opeartData.fileName + ‘]‘, form); fileInput.click(); } } })(jQuery);
2>前台页面调用代码如下,Jquery插件,别忘记引入Jquery对应js:
<script type="text/javascript"> $(function () { $("#imagetx").bind("click", function () { $.UpLoadForm.$OpenFIle({ // 上传地址 url: ‘../upload/UploadImg‘, // 文件域名字 fileName: ‘upimage‘, // 其他表单数据 imgshow: ‘imagetx‘, // 上传完成后, 返回json, text dataType: ‘json‘, // 上传之前回调,return true表示可继续上传 onSend: function () { $.ShowLoadDialog(); returntrue; }, onSubmit: function () { var picpath = $("#imagetx").val(); console.log(picpath); if (!$.UpLoadForm.$IsPicCheck(picpath)) { $.ShowLoadDialogClose(); $TipDialog("图片上传", "请上传jpg、gif、bmp、png、jpeg格式的图片!"); returnfalse; } returntrue; }, // 上传之后回调 onComplate: function (data) { $.ShowLoadDialogClose(); if (data != null) { console.log(data) if (data.errorcode == "200") { $("#showpic").attr("src", data.picurl); } else { $TipDialog("图片上传", "图片上传失败"); } } } }); }); $("#btnupload").bind("click", function () { $.UpLoadForm.$ImgUpLoad(); }) }); </script>
3>后台服务器验证:
[HttpPost] public JsonResult UploadImg(HttpPostedFileBase upimage) { string pic = "", error = "001",pcode=""; try { if (upimage != null) { string fileName = DateTime.Now.ToString("yyyyMMdd") + System.IO.Path.GetFileName(upimage.FileName); string[] pictext = { ".jpg",".gif",".bmp",".png",".jpeg" }; string extenname= System.IO.Path.GetExtension(fileName); if (pictext.Contains(extenname)) { string filePhysicalPath = Server.MapPath("~/Upload/Images/" + fileName); upimage.SaveAs(filePhysicalPath); pic = "/Upload/Images/" + fileName; } else { error = "200"; pic =pic ; } } } } catch (Exception ex) { error = ex.Message; } return Json(new { errorcode = error, picurl = pic, piccode = pcode }); }
图片上传也就完成,展示的效果也如上面所示;
原文:http://www.cnblogs.com/xibei666/p/5182214.html
内容总结
以上是互联网集市为您收集整理的Jquery自定义图片上传插件全部内容,希望文章能够帮你解决Jquery自定义图片上传插件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。