JS上傳組件FileUpload自定義模板的使用方法
來源:易賢網(wǎng) 閱讀:1226 次 日期:2016-07-01 14:38:12
溫馨提示:易賢網(wǎng)小編為您整理了“JS上傳組件FileUpload自定義模板的使用方法”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家詳細介紹了JS上傳組件FileUpload自定義模板的使用方法,感興趣的小伙伴們可以參考一下

FileUpload 是國外一個純javascript 寫的大文件上傳組件,該組件支持分片上傳,斷點續(xù)傳,多文件等功能。

下面就為大家分享FileUpload上傳組件自定義模板(FineUploaderBasic)的使用方法:

以下是配置代碼:

前端配置:

<!--定義按鈕-->

<div id="basic_uploader_fine"><i class="icon-upload icon-white"></i>選擇文件</div>

<div id="triggerUpload">點擊上傳</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, //不自動上傳則調(diào)用uploadStoredFiless方法 手動上傳

  // 驗證上傳文件

  validation: { 

   allowedExtensions: ['jpeg', 'jpg', 'png', 'zip' , 'rar'],

  }, 

  // 遠程請求地址(相對或者絕對地址)

  request: {

   endpoint: 'server/endpoint.php'

  },

  retry: {

   enableAuto: false // defaults to false 自動重試

  }, 

  chunking: {

   enabled: true,

   partSize: 500, // 分組大小,默認為 2M

   concurrent: {

    enabled: true // 開啟并發(fā)分組上傳,默認并發(fā)3個

   },

   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 + '”');

  },

  //進度條

  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);

  },  

  }  

 });

 //手動觸發(fā)上傳上傳

  $('#triggerUpload').click(function() {

  uploader.uploadStoredFiles();

 });

 //取消某一個上傳

  $('#cancelUpload').click(function() {

  uploader.cancel(0);

 });

 //取消所有未上傳的文件

  $('#cancelAll').click(function() {

   //單個文件上傳沒有作用 因為已經(jīng)在上傳的不能使用這個cancelAll取消上傳

   uploader.cancelAll();

 });

 //暫停上傳某個文件

 $('#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的代碼添加了個文件夾生成規(guī)則【你也可以自定義】)

$uploadDirectory = $uploader->getPathName('member_avatar');

if ($method == "POST") {

 header("Content-Type: text/plain");

 // 分組上傳完成后對分組進行合并

 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");

}

以上是一個簡單的自定義模板的配置,希望對大家的學(xué)習有所幫助。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:JS上傳組件FileUpload自定義模板的使用方法

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)