This module integrates the Plupload library (available from http://plupload.com) with Drupal forms. To install the Plupload library: 1. Download it (version 1.5.1.1 or later) from https://github.com/moxiecode/plupload/releases Version 2.0.0 is currently unsupported. Latest 1.x.x version is 1.5.8, which can be downloaded from https://github.com/moxiecode/plupload/archive/v1.5.8.zip. 2. Unzip it into sites/all/libraries, so that there's a sites/all/libraries/plupload/js/plupload.full.js file, in addition to the other files included in the library. 3. Remove "examples" folder from libraries folder as it could constitute a security risk to your site. See http://drupal.org/node/1895328 and http://drupal.org/node/1189632 for more info. If you would like to use an alternate library location, you can install the http://drupal.org/project/libraries module and/or add $conf['plupload_library_path'] = PATH/TO/PLUPLOAD; to your settings.php file. At this time, this module only provides a 'plupload' form element type that other modules can use for providing multiple file upload capability to their forms. It does not provide any end-user functionality on its own. This may change, however, as this module evolves. See http://drupal.org/node/880300. ---=== For developers ===--- Plupload from element can be used like this: $form['my_element'] = array( '#type' => 'plupload', '#title' => t('Upload files'), '#description' => t('This multi-upload widget uses Plupload library.'), '#autoupload' => TRUE, '#autosubmit' => TRUE, '#submit_element' => '#id-of-your-submit-element', '#upload_validators' => array( 'file_validate_extensions' => array('jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp'), 'my_custom_file_validator' => array('some validation criteria'), ); '#plupload_settings' => array( 'runtimes' => 'html5', 'chunk_size' => '1mb', ), '#event_callbacks' => array( 'FilesAdded' => 'Drupal.mymodule.filesAddedCallback', 'UploadComplete' => 'Drupal.mymodule.uploadCompleteCallback', ), ); There are few optional properties of this array that have special meaning: - #autoupload: set this to TRUE if you want Plupload to start uploading immediately after files are added. Defaults to FALSE. - #autosubmit: set this to TRUE if you want Plupload to autosubmit your form after automatic upload has finished. Defaults to FALSE. Has to be used in combination with #autoupload. - #submit_element: specify which submit element Plupload shall use to submit the form. Can also be used in combination with #autoupload and #autosubmit. See: http://drupal.org/node/1935256 - #upload_validators - an array of validation function/validation criteria pairs, that will be passed to file_validate(). Defaults to: '#upload_validators' => array( 'file_validate_extensions' => array('jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp'), ); - #plupload_settings - array of settings, that will be passed to Plupload library. See: http://www.plupload.com/documentation.php Defaults to: '#plupload_settings' => array( 'runtimes' => 'html5,flash,html4', 'url' => url('plupload-handle-uploads', array('query' => array('plupload_token' => drupal_get_token('plupload-handle-uploads')))), 'max_file_size' => file_upload_max_size() . 'b', 'chunk_size' => '1mb', 'unique_names' => TRUE, 'flash_swf_url' => file_create_url($library_path . '/js/plupload.flash.swf'), 'silverlight_xap_url' => file_create_url($library_path . '/js/plupload.silverlight.xap'), ), - #event_callbacks - array of callbacks that will be passed to js. See full documentation about events in Plupload library: http://www.plupload.com/example_events.php