jquey-1.11.3.min.js jquery-ui-widget.js jquery.iframe-transport.js jquery.fileupload.js2. 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>容器用来显示进:3
<div id="progress"> <div class="bar" style="width: 0%;"> </div> </div>4. API
$('#fileupload').fileupload();4.2 Options :
Type: string Example: '/path/to/upload/handler.json'2.Type: 文件上传HTTP请求方式,可以选择“POST”,“PUT”或者"PATCH",
$('#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”;
$('#fileupload').bind('fileuploadadd', function (e, data) {/* ... */}); 或者 $('#fileupload').on('fileuploadadd', function (e, data) {/* ... */});2. processalways: 当一个单独的文件处理队列结束(完成或失败时)触发
$('#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响应这个函数将不会被触发。
6. always : 上传请求结束时(成功,错误或者中止)都会被触发。
//初始化,主要是设置上传参数,以及事件处理方法(回调函数) $("input[name='fileupload']").fileupload({ autoUpload: true, //是否自动上传 url: "guestFile/upload.action", //上传地址 dataType: "json", done: function(e, data) { //设置文件上传完毕事件的回调函数 if (data.result.result == true) { $("#guestFileId").val(data.result.guestFileId); alert("文件上传成功!"); } }, add: function(e, data) { //判断文件类型 var acceptFileTypes = /\/(pdf|xml)$/i; var acceptFileTypes = /^gif|jpe?g|png|doc|docx|xls|xlsx|pdf|txt$/i; var name = data.originalFiles[0]["name"]; var index = name.lastIndexOf(".") + 1; var fileType = name.substring(index, name.length); if (!acceptFileTypes.test(fileType)) { alert("上传文件类型不对!"); return; } var size = data.originalFiles[0]["size"]; if (size > (1024 * 10 * 1024)) { alert("上传文件超过最大限制!"); return; } data.submit(); } });