幾款極好的 JavaScript 檔案上傳外掛
檔案上傳功能作為網頁重要的組成部分,幾乎無處不在,從簡單的單個檔案上傳到複雜的批量上傳、拖放上傳,需要開發者花費大量的時間和精力去處理,以期實現好用的上傳功能。這篇文章向大家推薦幾款很棒的 JavaScript 檔案上傳功能增強外掛。
這是最受歡迎的 jQuery 檔案上傳元件,支援批量上傳,拖放上傳,顯示上傳進度條以及校驗功能。
支援預覽圖片、音訊和視訊,支援跨域上傳和客戶端圖片縮放,支援的服務端平臺有:PHP, Python, Ruby on Rails, Java, Node.js, Go 等等。
使用示例:
$(function () { 'use strict'; // Change this to the location of your server-side upload handler: var url = 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) { var progress = parseInt(data.loaded / data.total * 100, 10); $('#progress .progress-bar').css( 'width', progress + '%' ); } }).prop('disabled', !$.support.fileInput) .parent().addClass($.support.fileInput ? undefined : 'disabled'); });
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); });
Uploadify 有兩個版本,HTML5 方法上傳版本和傳統的 Flash 上傳。支援高度自定義,可以完美的繼承到你的網站中。
Flash 版本相容性好,使用示例:
$(function() { $("#file_upload_1").uploadify({ height : 30, swf : '/uploadify/uploadify.swf', uploader : '/uploadify/uploadify.php', width : 120 }); });
這個 JavaScript 外掛可以幫助你在網站中整合體驗極好的檔案上傳功能。可以結合 jQuery 或者 Bootstrap 使用。
主要特色:
- 批量上傳
- 顯示進度條
- 拖放上傳
- 自動或者手動上傳,可取消
- 自定義錯誤提示資訊
- 自動或者手動重試
- 內建的校驗規則
- 可編輯檔名稱
使用示例:
(1)手動觸發上傳
<div id="manual-fine-uploader"></div> <div id="triggerUpload" class="btn btn-primary" style="margin-top: 10px;"> <i class="icon-upload icon-white"></i> Upload now </div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="jquery.fineuploader-{VERSION}.js"></script> <script> $(document).ready(function() { var manualuploader = $('#manual-fine-uploader').fineUploader({ request: { endpoint: 'server/handleUploads' }, autoUpload: false, text: { uploadButton: '<i class="icon-plus icon-white"></i> Select Files' } }); $('#triggerUpload').click(function() { manualuploader.fineUploader('uploadStoredFiles'); }); }); </script>
(2)編輯檔名稱
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Fine Uploader - jQuery Wrapper Minimal Demo</title> <link href="fineuploader-{VERSION}.css" rel="stylesheet"> </head> <body> <div id="jquery-wrapped-fine-uploader"></div> <div id="triggerUpload" class="btn btn-primary" style="margin-top: 10px;"> <i class="icon-upload icon-white"></i> Upload now </div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="jquery.fineuploader-{VERSION}.js"></script> <script> $(document).ready(function () { $('#myFineUploader').fineUploader({ request: { endpoint: 'server/handleUploads' }, editFilename: { enabled: true }, autoUpload: false }); $('#triggerUpload').click(function() { $('#myFineuploader').fineUploader('uploadStoredFiles'); }); </script> </body> </html>
(3)自定義選項
<div id="restricted-fine-uploader"></div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="jquery.fineuploader-{VERSION}.js"></script> <script> $(document).ready(function() { $('#restricted-fine-uploader').fineUploader({ request: { endpoint: 'server/success.html' }, multiple: false, validation: { allowedExtensions: ['jpeg', 'jpg', 'txt'], sizeLimit: 51200 // 50 kB = 50 * 1024 bytes }, text: { uploadButton: 'Click or Drop' }, showMessage: function(message) { // Using Bootstrap's classes $('#restricted-fine-uploader').append('<div class="alert alert-error">' + message + '</div>'); } }); }); </script>
(4)顯示圖片縮圖
<div id="thumbnail-fine-uploader"></div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="jquery.fineuploader-{VERSION}.js"></script> <script> $(document).ready(function() { $('#thumbnail-fine-uploader').fineUploader({ request: { endpoint: 'server/success.html' }, validation: { allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'] }, text: { uploadButton: 'Click or Drop' } }).on('complete', function(event, id, fileName, responseJSON) { if (responseJSON.success) { $(this).append('<img src="img/success.jpg" alt="' + fileName + '">'); } }); }); </script>
(5)限制檔案上傳數
<div id="filelimit-fine-uploader"></div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="jquery.fineuploader-{VERSION}.js"></script> <script> $(document).ready(function() { $('#filelimit-fine-uploader').fineUploader({ request: { endpoint: 'server/success.html' }, validation: { itemLimit: 3 } }); }); </script>
相關文章
- 外掛 檔案上傳外掛 ajaxfileupload.js外掛JS
- plupload微信檔案上傳外掛
- JavaScript 檔案上傳JavaScript
- 檔案上傳的幾個 - 示例
- 檔案上傳的幾種方式
- 無外掛實現大檔案分片上傳,斷點續傳斷點
- JavaWeb之實現檔案上傳與下載外掛JavaWeb
- 使用PlupLoad js外掛進行檔案上傳案例JS
- 支援多檔案上傳,預覽,拖拽,基於bootstrap的上傳外掛fileinput的ajax非同步上傳boot非同步
- JavaScript限制上傳檔案的大小JavaScript
- 推薦幾款好用的Chrome外掛Chrome
- 支援斷點續傳的檔案上傳外掛——Huploadify-V2.0來了斷點
- HTML5檔案上傳外掛HuploadifyV2.1釋出HTML
- vim幾款外掛使用記錄
- 推薦幾款不錯的Chrome 外掛Chrome
- 求一個手機多選上傳圖片的好外掛
- apisix~自定義檔案上傳代理外掛~支援form-data檔案和kv引數APIORM
- HTML5檔案上傳外掛 Huploadify V2.1釋出HTML
- 誰有檔案上傳的好的程式碼呢?
- 實現元素動畫的6款 JavaScript 外掛動畫JavaScript
- 幾款適合前端開發的Chrome外掛前端Chrome
- php檔案上傳之多檔案上傳PHP
- Laravel-admin 外掛中檔案上傳改為非同步上傳並設定_token 和_methodLaravel非同步
- 幾種windows到linux上傳檔案的方式WindowsLinux
- .NetCore上傳多檔案的幾種示例NetCore
- [外掛擴充套件]圖片批量上傳外掛2.0套件
- 號外號外,GitHub 支援上傳視訊檔案啦!Github
- JavaScript 開發者必備的10款 Sublime Text 外掛JavaScript
- 什麼是極速檔案傳輸,極速檔案傳輸如何進行大檔案傳輸
- RxRetrofit - 終極封裝 - 深入淺出 & 檔案上傳封裝
- 檔案上傳之三基於flash的檔案上傳
- 贊!帶進度條的 jQuery 檔案拖放上傳外掛jQuery
- 【nodejs】multer外掛批量上傳NodeJS
- 單個檔案上傳和批量檔案上傳
- 檔案上傳
- 上傳檔案的陷阱
- 推薦幾款超好用的Android Stuido外掛AndroidUI
- 推薦幾款優秀的Android Studio外掛Android