Small Drag & Drop To Upload Plugin - jQuery simple-upload
| File Size: | 16.5 KB |
|---|---|
| Views Total: | 31890 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
simple-upload is a lightweight, user-friendly, AJAX-enabled file uploader plugin that supports drag'n'drop, file validation, upload progress bar, AJAX form submit, etc.
The plugin provides a basic file upload experience on your web application while leaving the styling up to you.
How to use it:
1. Create a normal file input on the webpage.
<input type="file" name="file" id="basic">
2. The plugin also supports multiple file upload.
<input type="file" name="file" multiple="true" id="basic">
3. Create a drop zone where the user can add files to the upload queue via drag and drop.
<div id="basic_drop_zone" class="dropZone"> <div>Drop files here</div> </div>
4. Create a 'progress' container to hold the progress bar while uploading files to the server.
<div id="basic_progress"></div>
5. Create a 'message' container to hold the feedback messages.
<div id="basic_message"></div>
6. Initialize the plugin and done.
$('#basic').simpleUpload({
dropZone: '#basic_drop_zone',
progress: '#basic_progress'
})
7. Determine how you'd like to upload the file(s).
$('#basic').simpleUpload({
// url to send the data
url: '',
// submit method
method: 'post',
// set object
params: {
'KEY': 'VALUE'
},
// or set callback
params: function() {
return { 'KEY': 'VALUE' };
},
ajax: {
headers: {
'HEADER_KEY': 'HEADER_VALUE'
},
dataType: 'application/json',
timeout: 0,
async: true
}
})
8. Validate the file(s) to upload on the client-side. All possible validators:
- The max number of files.
- File size.
- Extension name.
- Mime type.
- Custom validation rule.
function validate(files) {
var passed = []
for (var i=0; i<files.length; i++) {
if (files[i].name == 'test.txt') {
alert("can't upload test.txt");
} else {
passed.push(files[i]);
}
}
return passed;
}
$('#basic').simpleUpload({
maxFileNum: 4,
maxFileSize: 100,
allowedFileName: /\.txt$/,
allowedMimeType: /^text\//,
validator: validate
})
9. Available functions to handle the upload events.
$('#basic').simpleUpload().on('upload:before', function(e, files) {
console.log('before');
console.log(files);
}).on('upload:after', function(e, files) {
console.log('after');
console.log(files);
}).on('upload:start', function(e, file, i) {
console.log('start ' + i);
console.log(file);
}).on('upload:progress', function(e, file, i, loaded, total) {
console.log('progress ' + i + ' ' + loaded + '/' + total);
}).on('upload:end', function(e, file, i) {
console.log('end ' + i);
console.log(file);
}).on('upload:done', function(e, file, i) {
console.log('done ' + i);
console.log(file);
$('#basic_message').prepend('<p>done: ' + file.name + '</p>');
}).on('upload:fail', function(e, file, i) {
console.log('fail ' + i);
console.log(file);
$('#basic_message').prepend('<p>fail: ' + file.name + '</p>');
});
Changelog:
v0.4.0 (2020-07-12)
- Add ajax option
v0.3.0 (2019-10-21)
- Bundle css with js.
This awesome jQuery plugin is developed by kanety. For more Advanced Usages, please check the demo page or visit the official website.











