JS上傳組件FileUpload自定義模板的使用方法
FileUpload 是國外一個(gè)純javascript 寫的大文件上傳組件,該組件支持分片上傳,斷點(diǎn)續(xù)傳,多文件等功能。
下面就為大家分享FileUpload上傳組件自定義模板(FineUploaderBasic)的使用方法:
以下是配置代碼:
前端配置:
<!--定義按鈕--> <div id="basic_uploader_fine"><i class="icon-upload icon-white"></i>選擇文件</div> <div id="triggerUpload">點(diǎn)擊上傳</div> <!--顯示信息--> <div id="messages"></div> <div id="cancelUpload" class="buttons">取消</div> <div id="cancelAll" class="buttons">取消全部</div> <div id="pauseUpload" class="buttons">暫停上傳</div> <div id="continueUpload" class="buttons">繼續(xù)上傳</div> <script> $(document).ready(function() { $fub = $('#basic_uploader_fine'); $messages = $('#messages'); var uploader = new qq.FineUploaderBasic({ debug: true, // 開啟調(diào)試模式 multiple: true, // 多文件上傳 button: $fub[0], //上傳按鈕 autoUpload: false, //不自動(dòng)上傳則調(diào)用uploadStoredFiless方法 手動(dòng)上傳 // 驗(yàn)證上傳文件 validation: { allowedExtensions: ['jpeg', 'jpg', 'png', 'zip' , 'rar'], }, // 遠(yuǎn)程請求地址(相對或者絕對地址) request: { endpoint: 'server/endpoint.php' }, retry: { enableAuto: false // defaults to false 自動(dòng)重試 }, chunking: { enabled: true, partSize: 500, // 分組大小,默認(rèn)為 2M concurrent: { enabled: true // 開啟并發(fā)分組上傳,默認(rèn)并發(fā)3個(gè) }, success: { endpoint: "server/endpoint.php?done" // 分組上傳完成后處理 } }, //回調(diào)函數(shù) callbacks: { //文件開始上傳 onSubmit: function(id, fileName) { $messages.append('<div id="file-' + id + '" class="alert" style="margin: 20px 0 0">'+fileName+'</div>'); }, onUpload: function(id, fileName) { $('#file-' + id).addClass('alert-info') .html('<img src="client/loading.gif" alt="Initializing. Please hold."> ' + 'Initializing ' + '“' + fileName + '”'); }, //進(jìn)度條 onProgress: function(id, fileName, loaded, total) { if (loaded < total) { progress = Math.round(loaded / total * 100) + '% of ' + Math.round(total / 1024) + ' kB'; $('#file-' + id).removeClass('alert-info') .html('<img src="http://img.zcool.cn/community/01ff2756629d096ac725b2c8e95102.gif" width="50px" height="50px;" alt="In progress. Please hold."> ' + '上傳文件中......' + progress); } else { $('#file-' + id).addClass('alert-info') .html('<img src="http://img.zcool.cn/community/01ff2756629d096ac725b2c8e95102.gif" width="50px" height="50px;" alt="Saving. Please hold."> ' + '上傳文件中...... '); } }, //上傳完成后 onComplete: function(id, fileName, responseJSON) { if (responseJSON.success) { var img = responseJSON['target'] $('#file-' + id).removeClass('alert-info') .addClass('alert-success') .html('<i class="icon-ok"></i> ' + '上傳成功! ' + '“' + fileName + '”' ); } else { $('#file-' + id).removeClass('alert-info') .addClass('alert-error') .html('<i class="icon-exclamation-sign"></i> ' + 'Error with ' + '“' + fileName + '”: ' + responseJSON.error); } }, onError: function(id, name, reason, maybeXhrOrXdr) { console.log(id + '_' + name + '_' + reason); }, } }); //手動(dòng)觸發(fā)上傳上傳 $('#triggerUpload').click(function() { uploader.uploadStoredFiles(); }); //取消某一個(gè)上傳 $('#cancelUpload').click(function() { uploader.cancel(0); }); //取消所有未上傳的文件 $('#cancelAll').click(function() { //單個(gè)文件上傳沒有作用 因?yàn)橐呀?jīng)在上傳的不能使用這個(gè)cancelAll取消上傳 uploader.cancelAll(); }); //暫停上傳某個(gè)文件 $('#pauseUpload').click(function() { uploader.pauseUpload(0); }); // 繼續(xù)上傳 $('#continueUpload').click(function() { uploader.continueUpload(0); }); }); </script>
php代碼:
//handler.php文件官網(wǎng)上下 require_once "handler.php"; $uploader = new UploadHandler(); // 文件類型限制 $uploader->allowedExtensions = array(); // 文件大小限制 $uploader->sizeLimit = null; // 上傳文件框 $uploader->inputName = "qqfile"; // 定義分組文件存放位置 $uploader->chunksFolder = "chunks"; $method = $_SERVER["REQUEST_METHOD"]; //上傳目的文件夾(由于原來的文件存放規(guī)則不符合我們的需求所以修改了handler.php的代碼添加了個(gè)文件夾生成規(guī)則【你也可以自定義】) $uploadDirectory = $uploader->getPathName('member_avatar'); if ($method == "POST") { header("Content-Type: text/plain"); // 分組上傳完成后對分組進(jìn)行合并 if (isset($_GET["done"])) { $result = $uploader->combineChunks($uploadDirectory); // 合并分組文件 } else { //開始上傳文件 $result = $uploader->handleUpload($uploadDirectory); // 獲取上傳的名稱 $result["uploadName"] = $uploader->getUploadName(); } echo json_encode($result); } //刪除文件處理 else if ($method == "DELETE") { $result = $uploader->handleDelete($uploadDirectory); echo json_encode($result); } else { header("HTTP/1.0 405 Method Not Allowed"); }
以上是一個(gè)簡單的自定義模板的配置,希望對大家的學(xué)習(xí)有所幫助。
- FileUpload使用Javascript檢查擴(kuò)展名是否有效實(shí)現(xiàn)思路
- Extjs的FileUploadField文件上傳出現(xiàn)了兩個(gè)上傳按鈕
- js判斷上傳文件類型判斷FileUpload文件類型代碼
- 使用AjaxFileUpload.js實(shí)現(xiàn)異步文件上傳示例
- 一個(gè)簡單的jQuery插件ajaxfileupload.js實(shí)現(xiàn)ajax上傳文件例子
- 使用ajaxfileupload.js實(shí)現(xiàn)ajax上傳文件php版
- ajaxFileUpload.js插件支持多文件上傳的方法
- asp.net+ajaxfileupload.js 實(shí)現(xiàn)文件異步上傳代碼分享
- JQuery插件ajaxfileupload.js異步上傳文件實(shí)例
- JavaScript判斷FileUpload控件上傳文件類型
相關(guān)文章
JavaScript提取元素中第一個(gè)子元素的實(shí)現(xiàn)方法
本文主要介紹了JavaScript提取元素中第一個(gè)子元素的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06JS函數(shù)arguments數(shù)組獲得實(shí)際傳參數(shù)個(gè)數(shù)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狫S函數(shù)arguments數(shù)組獲得實(shí)際傳參數(shù)個(gè)數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05ES6 Symbol數(shù)據(jù)類型的應(yīng)用實(shí)例分析
這篇文章主要介紹了ES6 Symbol數(shù)據(jù)類型的應(yīng)用,結(jié)合實(shí)例形式分析了ES6 Symbol數(shù)據(jù)類型的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-06-06