#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# File: uploader/js/uploader.js

    /**
    * Provides UI for selecting multiple files and functionality for
    * uploading multiple files to the server with support for either
    * html5 or Flash transport mechanisms, automatic queue management,
    * upload progress monitoring, and error events.
    * @module uploader
    * @main uploader
    * @since 3.5.0
    */

    /**
    * `Y.Uploader` serves as an alias for either <a href="UploaderFlash.html">`Y.UploaderFlash`</a>
    * or <a href="UploaderHTML5.html">`Y.UploaderHTML5`</a>, depending on the feature set available
    * in a specific browser. If neither HTML5 nor Flash transport layers are available, `Y.Uploader.TYPE`
    * static property is set to `"none"`.
    *
    * @class Uploader
    */

    /**
    * The static property reflecting the type of uploader that `Y.Uploader`
    * aliases. The possible values are:
    * <ul>
    * <li><strong>`"html5"`</strong>: Y.Uploader is an alias for <a href="UploaderHTML5.html">Y.UploaderHTML5</a></li>
    * <li><strong>`"flash"`</strong>: Y.Uploader is an alias for <a href="UploaderFlash.html">Y.UploaderFlash</a></li>
    * <li><strong>`"none"`</strong>: Neither Flash not HTML5 are available, and Y.Uploader does
    * not reference an actual implementation.</li>
    * </ul>
    *
    * @property TYPE
    * @type {String}
    * @static
    */

    var Win = Y.config.win;

    if (Win && Win.File && Win.FormData && Win.XMLHttpRequest) {
        Y.Uploader = Y.UploaderHTML5;
    }

    else if (Y.SWFDetect.isFlashVersionAtLeast(10,0,45)) {
        Y.Uploader = Y.UploaderFlash;
    }

    else {
        Y.namespace("Uploader");
        Y.Uploader.TYPE = "none";
    }