2. html代码:
- jquey-1.11.3.min.js
- jquery-ui-widget.js
- jquery.iframe-transport.js
- jquery.fileupload.js
3. js代码:
- <input id="fileupload" type="file" name="files[]" data-url="server/php/" multiple>
3.1 显示上传进度条:
- $(function() {
- $('#fileupload').fileupload({
- dataType: 'json',
- done: function(e, data) {
- $.each(data.result.files,
- function(index, file) {
- $('<p/>').text(file.name).appendTo(document.body);
- });
- }
- });
- });
3.2 需要一个<div>容器用来显示进:3
- $('#fileupload').fileupload({
- progressall: function(e, data) {
- var progress = parseInt(data.loaded / data.total * 100, 10);
- $('#progress .bar').css('width', progress + '%');
- }
- });
4. API
- <div id="progress">
- <div class="bar" style="width: 0%;">
- </div>
- </div>
4.2 Options :
- $('#fileupload').fileupload();
2.Type: 文件上传HTTP请求方式,可以选择“POST”,“PUT”或者"PATCH",
- Type: string
- Example: '/path/to/upload/handler.json'
使用方法二:绑定事件监听函数
- $('#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”;
- $('#fileupload')
- .bind('fileuploaddrop', function (e, data) {/* ... */})
- .bind('fileuploadchange', function (e, data) {/* ... */});
2. processalways: 当一个单独的文件处理队列结束(完成或失败时)触发
- $('#fileupload').bind('fileuploadadd', function (e, data) {/* ... */});
- 或者
- $('#fileupload').on('fileuploadadd', function (e, data) {/* ... */});
4. fail : 上传请求失败时触发的回调函数,如果服务器返回一个带有error属性的json响应这个函数将不会被触发。
- $('#fileupload').on('fileuploadprogressall',
- function(e, data) { //进度条显示
- var progress = parseInt(data.loaded / data.total * 100, 10);
- $('#progress .progress-bar').css('width', progress + '%');
- });
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();
- }
- });