jQuery File Upload 是一个Jquery文件上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态措辞开拓的做事器端。
官网链接:https://github.com/blueimp/jQuery-File-Upload/wiki
特点:拖放支持;上传进度条;图像预览;可定制和可扩展的;兼容任何做事器端运用平台(PHP, Python, Ruby on Rails, Java, Node.js, Go etc.)。

演示地址 https://blueimp.github.io/jQuery-File-Upload/
利用方法:
1. 须要加载的js文件:
jquey-1.8.3.min.js
jquery-ui-widget.js
jquery.iframe-transport.js
jquery.fileupload.js
2. html代码:
<input id=“fileupload” type=“file” name=“files[]” data-url=“server/php/” multiple>3. js代码:
$(function () {$(‘#fileupload’).fileupload({dataType: ‘json’,done: function (e, data) {$.each(data.result.files, function (index, file) {$(‘<p/>’).text(file.name).appendTo(document.body);});}});});3.1 显示上传进度条:
$(‘#fileupload’).fileupload({ progressall: function (e, data) { var progress = parseInt(data.loaded / data.total 100, 10); $(‘#progress .bar’).css( ‘width’, progress + ‘%’ ); } });3.2 须要一个<div>容器用来显示进:
<div id=“progress”> <div class=“bar” style=“width: 0%;“></div> </div>4. API
4.1 Initialization:
在上传按钮上调用fileupload()方法;
示例:
$('#fileupload').fileupload();
4.2 Options :
1: url:要求发送的目标url
Type: string
Example: ‘/path/to/upload/handler.json’
2.Type: 文件上传HTTP要求办法,可以选择“POST”,“PUT”或者”PATCH”,
默认”POST”
Type: string
Example: ‘PUT’
3. dataType:希望从做事器返回的数据类型,默认”json”
Type: string
Example: ‘json’
4. autoUpload:默认情形下,只要用户点击了开始按钮被添加至组件的文件会立即上传。将autoUpload值设为true可以自动上传。
Type: boolean
Default: true
5. acceptFileTypes:许可上传的的文件类型
Example: /(\.|\/)(gif|jpe?g|png|xlsx)$/i
6. maxFileSize: 最大上传文件大小
Example: 999000 (999KB) //单位:B
7. minFileSize:最小上传文件大小
Example: 100000 (100KB) //单位:B
8.previewMaxWidth : 图片预览区域最大宽度
Example: 100 //单位:px
4.3 Callback Options:
利用方法一:函数属性
实例:
$(‘#fileupload’).fileupload({ drop: function (e, data) { $.each(data.files, function (index, file) { alert(‘Dropped file: ‘ + file.name); }); }, change: function (e, data) { $.each(data.files, function (index, file) { alert(‘Selected file: ‘ + file.name); }); } });利用方法二:绑定事宜监听函数
实例:
$(‘#fileupload’) .bind(‘fileuploaddrop’, function (e, data) {/ … /}) .bind(‘fileuploadchange’, function (e, data) {/ … /});每个事宜名称都添加前缀:”fileupload”;
把稳推举利用第二种方法。
常用的回调函数:
1. add: 当文件被添加到上传组件时被触发
$(‘#fileupload’).bind(‘fileuploadadd’, function (e, data) {/ … /});或者$(‘#fileupload’).on(‘fileuploadadd’, function (e, data) {/ … /});
2. processalways: 当一个单独的文件处理行列步队结束(完成或失落败时)触发
3. progressall: 全局上传处理事宜的回调函数
Example:
$(‘#fileupload’).on(‘fileuploadprogressall’, function (e, data) { //进度条显示var progress = parseInt(data.loaded / data.total 100, 10);$(‘#progress .progress-bar’).css(‘width’,progress + ‘%’);});4. fail : 上传要求失落败时触发的回调函数,如果做事器返回一个带有error属性的json相应这个函数将不会被触发。
5. done : 上传要求成功时触发的回调函数,如果做事器返回一个带有error属性的json相应这个函数也会被触发。
6. always : 上传要求结束时(成功,缺点或者中止)都会被触发。