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)程請(qǐng)求地址(相對(duì)或者絕對(duì)地址)  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"); // 分組上傳完成后對(duì)分組進(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è)簡單的自定義模板的配置,希望對(duì)大家的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注