几款极好的 JavaScript 文件上传插件

本文转自:http://www.cnblogs.com/lhb25/p/form-enhanced-with-javascript-five.html



jQuery File Uploader

插件下载 | 在线演示

这是最受欢迎的 jQuery 文件上传组件,支持批量上传,拖放上传,显示上传进度条以及校验功能。

支持预览图片、音频和视频,支持跨域上传和客户端图片缩放,支持的服务端平台有:PHP, Python, Ruby on Rails, Java, Node.js, Go 等等。

使用示例:

$(function() {  
'use strict';  
// Change this to the location of your server-side upload handler:  
varurl = window.location.hostname === 'blueimp.github.io'?  
'//jquery-file-upload.appspot.com/': 'server/php/';  
$('#fileupload').fileupload({  
url: url,  
dataType:'json',  
done:function (e, data) {  
$.each(data.result.files,function (index, file) {  
$('<p/>').text(file.name).appendTo('#files');  
});  
},  
progressall:function (e, data) {  
varprogress = parseInt(data.loaded / data.total * 100, 10);  
$('#progress .progress-bar').css(  
'width',  
progress +'%'  
);  
}  
}).prop('disabled', !$.support.fileInput)  
.parent().addClass($.support.fileInput ? undefined :'disabled');  
});  


DropZoneJS

插件下载在线演示

DropzoneJS 是一个用于现代浏览器的开源的拖放上传插件,最大的特色是即时图片预览功能。

使用方法非常简单,只需添加 class 即可:

?
< form id = "my-awesome-dropzone" action = "/target" class = "dropzone" ></ form >

或者手动实例化:

?
new Dropzone( "div#my-dropzone" , { /* options */  });

可以添加更多参数:

?
Dropzone.options.myAwesomeDropzone = { maxFilesize: 1 };

发可以自定义事件:

?
Dropzone.options.myDropzone({
init: function () {
this .on( "error" , function (file, message) { alert(message); });
}
});
// or if you need to access a Dropzone somewhere else:
var myDropzone = Dropzone.forElement( "div#my-dropzone" );
myDropzone.on( "error" , function (file, message) { alert(message); });<span style= "line-height: 1.5;" > </span>

 


Uploadify

插件下载  在线演示

Uploadify 有两个版本,HTML5 方法上传版本和传统的 Flash 上传。支持高度自定义,可以完美的继承到你的网站中。

Flash 版本兼容性好,使用示例:

?
$( function () {
$( "#file_upload_1" ).uploadify({
height : 30,
swf : '/uploadify/uploadify.swf' ,
uploader : '/uploadify/uploadify.php' ,
width : 120
});
});


FineUploader

插件下载  在线演示

这个 JavaScript 插件可以帮助你在网站中集成体验极好的文件上传功能。可以结合 jQuery 或者 Bootstrap 使用。

主要特色:

  • 批量上传
  • 显示进度条
  • 拖放上传
  • 自动或者手动上传,可取消
  • 自定义错误提示信息
  • 自动或者手动重试
  • 内置的校验规则
  • 可编辑文件名称

使用示例:

(1)手动触发上传

<divid="manual-fine-uploader"></div>  
<divid="triggerUpload"class="btn btn-primary"style="margin-top: 10px;">  
<iclass="icon-upload icon-white"></i> Upload now  
</div>  
<scriptsrc="http://code.jquery.com/jquery-latest.js"></script>  
<scriptsrc="jquery.fineuploader-{VERSION}.js"></script>  
<script>  
$(document).ready(function() {  
var manualuploader = $('#manual-fine-uploader').fineUploader({  
request: {  
endpoint: 'server/handleUploads'  
},  
autoUpload: false,  
text: {  
uploadButton: '<iclass="icon-plus icon-white"></i> Select Files'  
}  
});  
$('#triggerUpload').click(function() {  
manualuploader.fineUploader('uploadStoredFiles');  
});  
});  
</script>

 (2) 编辑文件名称

[javascript]  view plain copy print ?
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <metacharset="utf-8">  
  5. <title>Fine Uploader - jQuery Wrapper Minimal Demo</title>  
  6. <linkhref="fineuploader-{VERSION}.css"rel="stylesheet">  
  7. </head>  
  8. <body>  
  9. <divid="jquery-wrapped-fine-uploader"></div>  
  10. <divid="triggerUpload"class="btn btn-primary"style="margin-top: 10px;">  
  11. <iclass="icon-upload icon-white"></i> Upload now  
  12. </div>  
  13. <scriptsrc="http://code.jquery.com/jquery-latest.js"></script>  
  14. <scriptsrc="jquery.fineuploader-{VERSION}.js"></script>  
  15. <script>  
  16. $(document).ready(function () {  
  17. $('#myFineUploader').fineUploader({  
  18. request: {  
  19. endpoint: 'server/handleUploads'  
  20. },  
  21. editFilename: {  
  22. enabled: true  
  23. },  
  24. autoUpload: false  
  25. });  
  26. $('#triggerUpload').click(function() {  
  27. $('#myFineuploader').fineUploader('uploadStoredFiles');  
  28. });  
  29. </script>  
  30. </body>  
  31. </html>  


(3)自定义选项

[javascript]  view plain copy print ?
  1. <divid="restricted-fine-uploader"></div>  
  2. <scriptsrc="http://code.jquery.com/jquery-latest.js"></script>  
  3. <scriptsrc="jquery.fineuploader-{VERSION}.js"></script>  
  4. <script>  
  5. $(document).ready(function() {  
  6. $('#restricted-fine-uploader').fineUploader({  
  7. request: {  
  8. endpoint: 'server/success.html'  
  9. },  
  10. multiple: false,  
  11. validation: {  
  12. allowedExtensions: ['jpeg''jpg''txt'],  
  13. sizeLimit: 51200 // 50 kB = 50 * 1024 bytes  
  14. },  
  15. text: {  
  16. uploadButton: 'Click or Drop'  
  17. },  
  18. showMessage: function(message) {  
  19. // Using Bootstrap's classes  
  20. $('#restricted-fine-uploader').append('<divclass="alert alert-error">' + message + '</div>');  
  21. }  
  22. });  
  23. });  
  24. </script>  


(4)显示图片缩略图

[javascript]  view plain copy print ?
  1. <divid="thumbnail-fine-uploader"></div>  
  2. <scriptsrc="http://code.jquery.com/jquery-latest.js"></script>  
  3. <scriptsrc="jquery.fineuploader-{VERSION}.js"></script>  
  4. <script>  
  5. $(document).ready(function() {  
  6. $('#thumbnail-fine-uploader').fineUploader({  
  7. request: {  
  8. endpoint: 'server/success.html'  
  9. },  
  10. validation: {  
  11. allowedExtensions: ['jpeg''jpg''gif''png']  
  12. },  
  13. text: {  
  14. uploadButton: 'Click or Drop'  
  15. }  
  16. }).on('complete'function(event, id, fileName, responseJSON) {  
  17. if (responseJSON.success) {  
  18. $(this).append('<imgsrc="img/success.jpg"alt="' + fileName + '">');  
  19. }  
  20. });  
  21. });  
  22. </script>  


(5)限制文件上传数


[javascript]  view plain copy print ?
  1. <divid="filelimit-fine-uploader"></div>  
  2. <scriptsrc="http://code.jquery.com/jquery-latest.js"></script>  
  3. <scriptsrc="jquery.fineuploader-{VERSION}.js"></script>  
  4. <script>  
  5. $(document).ready(function() {  
  6. $('#filelimit-fine-uploader').fineUploader({  
  7. request: {  
  8. endpoint: 'server/success.html'  
  9. },  
  10. validation: {  
  11. itemLimit: 3  
  12. }  
  13. });  
  14. });  
  15. </script>  
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值