Kannabismus
28 Apr 2010, 5:09 AM
The extension to upload files using Plupload.
It features:
Multiple files selection (of course).
Several runtimes (Flash, Silverlight, Google Gears, BrowserPlus, HTML5, HTML4) with fallback in order you specify.
Drag&Drop (HTML5, Gears, BrowserPlus runtime).
Client side image resize
See http://www.plupload.com for more info.
There are two extensions: Ext.ux.PluploadPanel and Ext.ux.PluploadButton which creates window with the panel for you.
Downloading:
Check out demo (http://adtim.ru/extjs/ux_plupload)
ext.ux.plupload.v0.1.full.zip (http://adtim.ru/extjs/files/ext.ux.plupload.v0.1.full.zip) - Get extension with Plupload 1.2.2
ext.ux.plupload.v0.1.zip (http://adtim.ru/extjs/files/ext.ux.plupload.v0.1.zip) Get extension only
Setup:
You must have Plupload, ext.ux.plupload.js, ext.ux.plupload.css and optionally DataView-more.js from ExtJS examples.
<!-- include DataView plugins to enable drag selection of queue -->
<script type="text/javascript" src="/js/ext-3.2.0/examples/ux/DataView-more.js"></script>
<script type="text/javascript" src="/js/plupload/js/gears_init.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.7.1/browserplus-min.js"></script>
<script type="text/javascript" src="/js/plupload/js/plupload.full.min.js"></script>
<!-- ! EDIT icon path in css -->
<link rel="stylesheet" type="text/css" href="/js/ext.ux.plupload.css" />
<script type="text/javascript" src="/js/ext.ux.plupload.js"></script>
Xtypes are 'pluploadpanel' and 'pluploadbutton'
Ext.ux.PluploadPanel
var myPanel = new Ext.ux.PluploadPanel({
url: '/path/to/upload/handler',
//the only required parameter
runtimes: 'gears,flash,silverlight,html5,browserplus,html4',
// first available runtime will be used
multipart: true,
multipart_params: { param1: 1, param2: 2 },
// works as baseParams for store.
// Accessible via this.uploader.settings.multipart_params after init
// multipart must be true
max_file_size: '10mb',
resize: {width: 640, height: 480, quality: 60},
flash_swf_url: '/js/plupload/js/plupload.flash.swf',
silverlight_xap_url: '/js/plupload/js/plupload.silverlight.xap',
// urls must be set properly or absent, otherwise uploader fail to initialize
filters: [ {title : "Image files", extensions : "jpg,JPG,gif,GIF,png,PNG"},
{title : "Zip files", extensions : "zip,ZIP"},
{title : "Text files", extensions : "txt,TXT"}
],
runtime_visible: true, // show current runtime in statusbar
// icon classes for toolbar buttons
addButtonCls: 'silk-add',
uploadButtonCls: 'silk-arrow-up',
cancelButtonCls: 'silk-stop',
deleteButtonCls: 'silk-cross',
// localization
addButtonText: 'Add files',
uploadButtonText: 'Upload',
cancelButtonText: 'Cancel upload',
deleteButtonText: 'Remove',
deleteSelectedText: '<b>Remove selected</b>',
deleteUploadedText: 'Remove uploaded',
deleteAllText: 'Remove ALL',
statusQueuedText: 'Queued',
statusUploadingText: 'Uploading ({0}%)',
statusFailedText: '<span style="color: red">FAILED</span>',
statusDoneText: '<span style="color: green">DONE</span>',
statusInvalidSizeText: 'Too big',
statusInvalidExtensionText: 'Invalid file type',
emptyText: '<div class="plupload_emptytext"><span>Upload queue is empty</span></div>',
emptyDropText: '<div class="plupload_emptytext"><span>Drop files here</span></div>',
progressText: '{0}/{1} ({3} failed) ({5}/s)',
// params are number of
// {0} files sent
// {1} total files
// {2} files successfully uploaded
// {3} failed files
// {4} files left in queue
// {5} current upload speed
listeners: {
beforestart: function(uploadpanel) {
uploadpanel.uploader.settings.url = '/path/to/upload/handler?_runtime=' + uploadpanel.runtime;
},
uploadstarted: function(uploadpanel) {
},
uploadcomplete: function(uploadpanel, success, failures) {
if ( success.length ) {
myStore.reload();
}
}
}
});
You can access Plupload object via myPanel.uploader property
Ext.ux.PluploadButton extends Ext.Button with params:
var myButton = new Ext.ux.PluploadButton({
text: 'Upload files',
window_width: 640,
window_height: 480,
window_title: 'Upload files',
clearOnClose: false, //clear queue after window is closed (actually window is hidden )
upload_config: { // Ext.ux.PluploadPanel config object (see above)
url: '/path/to/upload/handler',
...
}
});
Pluploadpanel accessible via myButton.uploadpanel
Hope it helps.
It features:
Multiple files selection (of course).
Several runtimes (Flash, Silverlight, Google Gears, BrowserPlus, HTML5, HTML4) with fallback in order you specify.
Drag&Drop (HTML5, Gears, BrowserPlus runtime).
Client side image resize
See http://www.plupload.com for more info.
There are two extensions: Ext.ux.PluploadPanel and Ext.ux.PluploadButton which creates window with the panel for you.
Downloading:
Check out demo (http://adtim.ru/extjs/ux_plupload)
ext.ux.plupload.v0.1.full.zip (http://adtim.ru/extjs/files/ext.ux.plupload.v0.1.full.zip) - Get extension with Plupload 1.2.2
ext.ux.plupload.v0.1.zip (http://adtim.ru/extjs/files/ext.ux.plupload.v0.1.zip) Get extension only
Setup:
You must have Plupload, ext.ux.plupload.js, ext.ux.plupload.css and optionally DataView-more.js from ExtJS examples.
<!-- include DataView plugins to enable drag selection of queue -->
<script type="text/javascript" src="/js/ext-3.2.0/examples/ux/DataView-more.js"></script>
<script type="text/javascript" src="/js/plupload/js/gears_init.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.7.1/browserplus-min.js"></script>
<script type="text/javascript" src="/js/plupload/js/plupload.full.min.js"></script>
<!-- ! EDIT icon path in css -->
<link rel="stylesheet" type="text/css" href="/js/ext.ux.plupload.css" />
<script type="text/javascript" src="/js/ext.ux.plupload.js"></script>
Xtypes are 'pluploadpanel' and 'pluploadbutton'
Ext.ux.PluploadPanel
var myPanel = new Ext.ux.PluploadPanel({
url: '/path/to/upload/handler',
//the only required parameter
runtimes: 'gears,flash,silverlight,html5,browserplus,html4',
// first available runtime will be used
multipart: true,
multipart_params: { param1: 1, param2: 2 },
// works as baseParams for store.
// Accessible via this.uploader.settings.multipart_params after init
// multipart must be true
max_file_size: '10mb',
resize: {width: 640, height: 480, quality: 60},
flash_swf_url: '/js/plupload/js/plupload.flash.swf',
silverlight_xap_url: '/js/plupload/js/plupload.silverlight.xap',
// urls must be set properly or absent, otherwise uploader fail to initialize
filters: [ {title : "Image files", extensions : "jpg,JPG,gif,GIF,png,PNG"},
{title : "Zip files", extensions : "zip,ZIP"},
{title : "Text files", extensions : "txt,TXT"}
],
runtime_visible: true, // show current runtime in statusbar
// icon classes for toolbar buttons
addButtonCls: 'silk-add',
uploadButtonCls: 'silk-arrow-up',
cancelButtonCls: 'silk-stop',
deleteButtonCls: 'silk-cross',
// localization
addButtonText: 'Add files',
uploadButtonText: 'Upload',
cancelButtonText: 'Cancel upload',
deleteButtonText: 'Remove',
deleteSelectedText: '<b>Remove selected</b>',
deleteUploadedText: 'Remove uploaded',
deleteAllText: 'Remove ALL',
statusQueuedText: 'Queued',
statusUploadingText: 'Uploading ({0}%)',
statusFailedText: '<span style="color: red">FAILED</span>',
statusDoneText: '<span style="color: green">DONE</span>',
statusInvalidSizeText: 'Too big',
statusInvalidExtensionText: 'Invalid file type',
emptyText: '<div class="plupload_emptytext"><span>Upload queue is empty</span></div>',
emptyDropText: '<div class="plupload_emptytext"><span>Drop files here</span></div>',
progressText: '{0}/{1} ({3} failed) ({5}/s)',
// params are number of
// {0} files sent
// {1} total files
// {2} files successfully uploaded
// {3} failed files
// {4} files left in queue
// {5} current upload speed
listeners: {
beforestart: function(uploadpanel) {
uploadpanel.uploader.settings.url = '/path/to/upload/handler?_runtime=' + uploadpanel.runtime;
},
uploadstarted: function(uploadpanel) {
},
uploadcomplete: function(uploadpanel, success, failures) {
if ( success.length ) {
myStore.reload();
}
}
}
});
You can access Plupload object via myPanel.uploader property
Ext.ux.PluploadButton extends Ext.Button with params:
var myButton = new Ext.ux.PluploadButton({
text: 'Upload files',
window_width: 640,
window_height: 480,
window_title: 'Upload files',
clearOnClose: false, //clear queue after window is closed (actually window is hidden )
upload_config: { // Ext.ux.PluploadPanel config object (see above)
url: '/path/to/upload/handler',
...
}
});
Pluploadpanel accessible via myButton.uploadpanel
Hope it helps.