在介绍这个插件之前,先吐槽一下。这个插件功能很强大。带有的功能有:上传(单个文件或批量文件),自动上传或点击按钮上传,上传前缩略图显示,判断文件格式,上传前的文件操作,上传时进度条显示等功能。如果你用的是最新的浏览器,那么所有的功能都能正常使用。但如果你或你的用户使用的是ie8(包括ie8)以下的浏览器,那么这个插件对于我们来说就只能使用单文件上传功能。ie9不支持上传前缩略图显示。也就是说这个插件主要是面向ie10+,chrome,firefox新版本浏览器的。

但为什么介绍这个插件呢,主要是因为这个插件是html5开发的,修改样式非常简单,不涉及到flash。在头像设置功能或类别需要设置图片中可以使用。
如果需要兼用更多的浏览器,并实现批量上传图片的功能,还是考虑用flash实现的插件吧,如uploadify。

而在本次测试中,实现的功能是使用blueimp插件+asp.net实现单文件ajax上传。

一、插件功能

结合服务器端开发语言,如asp.net,php等,实现文件上传。

二、官方地址

https://github.com/blueimp/jQuery-File-Upload

在官方地址中有demo演示,但是demo的演示只有前端。可以下载demo,但是我下载的demo不能用。所以我就照着官方文档开始测试。按照官方文档,前端很好实现。但是服务端的实现,有其它语言的说明,asp.net的只提供了一个demo。我下载了这个demo,带有批量上传,在chrome运行下是成功的。所以我照着这个文件又写了服务器端的代码。

三、插件使用

1.引用文件。在这里只实现单文件上传,文件格式写代码判断。

<scriptsrc="js/jquery-1.9.1.js"></script>
<scriptsrc="js/jquery-ui.js"></script>
<scriptsrc="js/jquery.fileupload.js"></script>
<scriptsrc="js/jquery.iframe-transport.js"></script>
<!--jquery.fileupload.css是插件自动样式文件,主要用于隐藏file-->
<linkhref="css/jquery.fileupload.css"rel="stylesheet"type="text/css"/>
<!--按钮的样式文件,这个文件可以不引用-->
<linkhref="css/bootstrap.min.css"rel="stylesheet"type="text/css"/>

2.Css样式文件。主要是上传按钮的样式。可以看bootstrap.min.css

3.Js代码。主要参考自官方文档。

$(function() {$('#fileupload').fileupload({//replaceFileInput: false,dataType: 'json',url:'<%=ResolveUrl("upload.ashx") %>',add:function(e, data) {debugger;//写正则判断var re = /^.+\.((jpg)|(png))$/i;$.each(data.files,function(index, file) {//文件格式正确,上传if(re.test(file.name)) {data.submit();}});},done:function(e, data) {$.each(data.result,function(index, file) {//上传完毕后显示图片$('#result').html('<img src="data:images/' + file + '"/>');});}});
});

4.使用到的html代码。主要有一个按钮,一个file,一个div组成。div用于显示返回的图片,上传完毕后显示图片。

<divclass="btn btn-success fileinput-button"><iclass="glyphicon glyphicon-plus"></i><span>ajax自动上传</span><inputid="fileupload"type="file"name="file"/>
</div>
<divid="result"></div>

5.asp.net代码。在后台再次判断文件格式,压缩图片尺寸大小,然后保存。上传图片的更多操作可以看:asp.net图片上传操作总结。主要代码可以下载下面的“测试文件”

if (context.Request.Files.Count > 0)
{var file = context.Request.Files[0];if (Path.GetExtension(file.FileName).ToLower() != ".jpg" || Path.GetExtension(file.FileName).ToLower() != "png"){string path = context.Server.MapPath("~/images");string filename =Path.Combine(path, file.FileName);//file.SaveAs(filename);using(System.Drawing.Image image =System.Drawing.Image.FromStream(file.InputStream)){//将图片尺寸压缩在保存,宽度最大为600,高度最大为600//按比例压缩PicHelper helper=new PicHelper(image,600,600);helper.CreateNewPic(filename);}var serializer = newSystem.Web.Script.Serialization.JavaScriptSerializer();var result = new { name =file.FileName };context.Response.Write(serializer.Serialize(result));}}

四、测试说明

测试环境:chrome,firefox,ie9
开发环境:vs2010
测试图片:

测试文件下载:http://www.1100w.com/wp-content/uploads/2013/10/UploadTest1.rar

转载于:https://www.cnblogs.com/imlions/p/3379370.html

网站开发常用jQuery插件总结(15)上传插件blueimp相关推荐

  1. js插件---IUpload文件上传插件(包括图片)

    js插件---IUpload文件上传插件(包括图片) 一.总结 一句话总结:上传插件找到真正上传位置的代码,这样就可以知道整个上传插件的逻辑了, 找资料还是github+官方 1.如何在js中找到真正 ...

  2. jquery uploadify 多文件上传插件 使用经验

    2019独角兽企业重金招聘Python工程师标准>>> Uploadify 官网:http://www.uploadify.com/ 一.如何使用呢? 官网原文:http://www ...

  3. php模板多图上传插件,PHP+jQuery+Ajax多图片上传插件

    注:本地预览无效,需要在服务断运行 使用方法 HTML 首先我们在页面上放置个上传按钮,使用POST提交到ajax.php.#ul_pics 用来显示上传完毕后的图片.关于按钮.进度条.图片垂直居中样 ...

  4. jquery 分片上传php,jquery 大文件分片上传插件 fcup.js

    软件介绍 fcup.js fcup 是一款支持大文件切片上传插件.该jquery插件使用简单,配置简单明了,支持上传类型指定,进度条查看上传进度.. 安装 直接下载源码,上传功能需要php环境,演示地 ...

  5. diyUpload - jQuery多张图片批量上传插件

    下载地址 一款支持多个图片文件批量上传插件代码下载,下载包里有服务端获取图片方法,是php语言./** 服务器地址,成功返回,失败返回参数格式依照jquery.ajax习惯;* 其他参数同WebUpl ...

  6. jquery.photoClip.js图片上传插件带拖动裁剪

    下载地址 jquery.photoClip.js是一款图片上传插件,可以拖动选择裁剪的区域. dd:

  7. Jquery插件(一) webupload上传插件

    WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览 ...

  8. 网站开发常用jQuery插件总结(四)验证插件validation

    在网站开发过程中,有时我们需要验证用户输入的信息是否符合我们的要求,所以我们会对用户提交的数据进行验证.验证分两次进行,一次是在客户端,一次是在服务端.客户端的验证可以提升用户的体验. jquery验 ...

  9. 基于jquery的上传插件Uploadify 3.1.1在MVC3中的使用

    Uploadify是JQuery的一个文件上传插件,实现的效果非常不错,目前已经更新到Version3.1.1,官方提供的实例是php版本的,本文将介绍Uploadify在MVC3中的使用,您可以点击 ...

最新文章

  1. java nio设计模式_Java NIO:浅析I/O模型
  2. Swift项目引入第三方库的方法
  3. .PHONY makefile中的伪目标
  4. 这个项目团队能少了谁?
  5. android应用兼容报告,手机资讯导报:华为发布国内首份Android7.0应用兼容报告
  6. 为什么你总是申请不到大额贷款?
  7. 【idea基础知识】常用快捷键整理
  8. 使用ImessageFilter接口实现截获键盘或者鼠标的消息
  9. Windows Server 2012 R2 安装密钥
  10. MySQL基础教程4-SQL基础概念
  11. Android 系统FaceDetector人脸识别检测,圆形相机预览框,截取图片中的人脸图片(宽高自定义),圆形图片显示。
  12. 用python做一个车牌识别_python利用百度云接口实现车牌识别
  13. python 残差图_为啥一定要用残差图检查你的回归分析?
  14. python编写自定义函数计算约登值(约登指数、Youden Index)、寻找最佳阈值(threshold、cutoff)、以及最佳阈值对应的ROC曲线中的坐标点
  15. 360P2建html网站,360 P2路由器密码怎么设置?
  16. 描述计算机内的存储单位及换算关系,计算机存储单位换算
  17. 超酷超炫Linux: Linsta 媲美 Vista
  18. 写论文时,Word文档修改保存后,文件越来越大的解决方法
  19. HTML5重要知识点
  20. 讲讲BW/4 HANA和BW on HANA的区别

热门文章

  1. 企业为实现网络营销更要将网络营销重点放在用户价值上
  2. 网页设计千千万,网站建设万万千
  3. 实现if_如何解决开发中 if...esle 代码过多的问题,强烈推荐!
  4. java基础面向对象_Java基础面向对象
  5. arcgis网络分析最短距离_转-- 一个ArcGIS网络分析的最短路径例子||A Network Analyst Shortest Route of ArcGIS...
  6. cad打开图纸流程图_如何打开cad图纸?cad怎么打开pdf的图纸?
  7. numpy append
  8. Ubuntu16.04 配置pytorch
  9. FreeSWITCH 学习笔记(一)
  10. bzoj 4372: 烁烁的游戏 动态点分治_树链剖分_线段树