jQuery File upload 上传简介

  jQuery文件上传插件由提供文件上传API的基本版(jquery.fileupload.js)和提供完整用户界面(jquery.fileupload-ui.js)的附加插件组成。基本版本的所有选项都存在于 UI版本,而后者引入了一些额外的选项。

AJAX选项

  jQuery文件上传插件使用jQuery.ajax()来处理文件上传请求。由于可以通过Iframe传输插件,即使不支持XHR的浏览器也可以保证上传。
  为文件上传插件设置的选项会作为jQuery.ajax()的参数,并允许定义任何ajax设置或回调。
  ajax选项processData,contentType和缓存设置为false,以使文件上传正常工作,不应更改。
  超时设置设置为0. 以下选项也由插件设置,但可以用于自定义:

###url

  请求发送的URL。
如果未定义或为空,则将其设置为文件上传表单的action属性(如果可用),否则设置为当前页面的URL。

类型:字符串
示例:’/path/to/upload/handler.json’

###type
  文件上传的HTTP请求方法。 可以设置为“POST”,“PUT”或“PATCH”,默认为“POST”。

类型:字符串
示例:‘PUT’
注意:
只有支持XHR文件上传的浏览器才支持“PUT”和“PATCH”,因为iframe传输上传依赖于只支持“POST”文件上传的标准HTML表单。
如果类型定义为“PUT”或“PATCH”,则iframe传输将通过“POST”发送文件,并将原始方法作为“_method”URL参数传输。

注意:如上所述,通常使用“_method”来传输请求的类型。 例如,“Ruby on Rails”框架在每个表单中使用名称为“_method”的隐藏输入,因此它很可能会覆盖您在此处设置的值。

###dataType
  从服务器返回的数据类型。
注意:默认情况下,文件上载插件的UI版本将此选项设置为“json”。

类型:字符串
示例:‘json’

General Options

###dropZone
  drop目标jQuery对象,默认情况下是完整的文档。
设置为null或空的jQuery集合以禁用拖放支持:

类型:jQuery对象
默认值:$(document)
注意:
如果要允许特定放置区域,但禁用文档上的文件放置的默认浏览器操作,请添加以下JavaScript代码:

$(document).bind('drop dragover', function (e) {
    e.preventDefault();
});

请注意,需要禁止“drop”和“dragover”事件的默认操作,才能禁用默认的浏览器放置操作。

###done
  回调成功上传请求。 这个回调等效于jQuery ajax()提供的成功回调,如果服务器返回一个带error属性的JSON响应,也会被调用。

function (e, data) {
    // data.result
    // data.textStatus;
    // data.jqXHR;
}

###progressall
  回调全局上传进度时间

function (e, data) {
    var progress = parseInt(data.loaded / data.total * 100, 10);
}

Callback Options

###add
add回调可以理解为文件上传请求队列的回调。一旦将文件添加到fileupload窗口小部件,就会调用它 - 通过文件输入选择,拖放或添加API调用。
data参数允许重载插件选项以及定义ajax设置。
data.files包含上传请求的文件列表:如果启用singleFileUploads选项(这是默认值),则将为选择的XHR文件上传中的每个文件调用一次add回调,并使用data.files数组长度为一,因为每个文件是单独上传的。否则,将为每个文件选择调用一次add回调。

当对data参数调用submit方法时,上传开始。
data.submit()返回一个Promise对象,并允许使用jQuery的Deferred回调附加其他处理程序。

如果autoUpload选项设置为true(基本插件的默认值),则默认添加回调提交文件。它还处理文件在上传之前的进程,如果任何进程处理程序已注册。

默认:

function (e, data) {
    if (data.autoUpload || (data.autoUpload !== false &&
            $(this).fileupload('option', 'autoUpload'))) {
        data.process().done(function () {
            data.submit();
        });
    }
}

举例

function (e, data) {
    $.each(data.files, function (index, file) {
        console.log('Added file: ' + file.name);
    });
    data.url = '/path/to/upload/handler.json';
    var jqXHR = data.submit()
        .success(function (result, textStatus, jqXHR) {/* ... */})
        .error(function (jqXHR, textStatus, errorThrown) {/* ... */})
        .complete(function (result, textStatus, jqXHR) {/* ... */});
}

###submit
回调每个文件上传的提交事件。
如果此回调返回false,则不会启动文件上传请求。

function (e, data) {
    var input = $('#input');
    data.formData = {example: input.val()};
    if (!data.formData.example) {
      data.context.find('button').prop('disabled', false);
      input.focus();
      return false;
    }
}

###processalways

回调单个文件处理队列的结束(done或fail)。

例:

function(e,data){
     console.log('Processing'+ data.files [data.index] .name +'ended。');
}}

###previewMaxWidth

预览图像的最大宽度。

类型:整数
默认值:80
###previewMaxHeight

预览图像的最大高度。

类型:integer
默认值:80
###previewCrop

定义预览图片是否应裁剪或仅缩放。

类型:boolean
默认值:false

Validation options

###acceptFileTypes
允许的文件类型的正则表达式,与文件类型或文件名匹配,仅用于浏览器支持的fileapi文件类型。

类型:正则表达式
默认值:undefined
示例:/(.|/)(gif|jpe?g|png)$/i

Image Preview & Resize Options

###disableImageResize
禁用调整大小图像功能。

类型:boolean
默认值:true

你可能感兴趣的:(jquery,file,upload)