1. 程式人生 > >親測dropzone.js外掛,並附自己做的上傳附件案例前後臺原始碼(詳細註釋)以及漢化後的效果圖

親測dropzone.js外掛,並附自己做的上傳附件案例前後臺原始碼(詳細註釋)以及漢化後的效果圖

先談一下我為什麼做這個。因為我認為i這個外掛特別符合現代潮流,所有的上傳動畫效果我都特別喜歡,支援多檔案同時上傳,最帥的是拖拽上傳,上傳進度,上傳完成,上傳失敗的提醒都很亮眼,而且親測可以支援幾乎所有的檔案型別,用它做上傳一定會給你的作品新增不少亮點。使用起來也特別簡單。

HTML:

<link type="text/css" rel="stylesheet" href="__PUBLIC__/vendors_no/dropzone/css/dropzone.css">//漢化後的css
<script src="__PUBLIC__/vendors_no/dropzone/js/dropzone.js"></script>//引用js

<div class="form-group">
      <label class="col-sm-2 control-label"></label>
      <div class="col-lg-8">
               <form id="my-dropzone" action="{:U('setting/accessoryUpload')}" class="dropzone"></form>//建立上傳表單,my-dropzone會繫結外掛
      </div>
</div>

JS:

$("#my-dropzone").dropzone({
      url: "{:U('setting/accessoryUpload')}", //上傳的url地址
      maxFiles: 10,//最大上傳數量
      maxFilesize: 60,//最大上傳的檔案大小,單位MB
      filesizeBase: 1024,//檔案大小的標準規格,這裡MB以1024kb為單位
      acceptedFiles: ".js,.obj,.dae,.jpg,.png,.xls"//允許上傳的檔案型別
});

更多關於dropzone.js的屬性詳見官網

官方文件:http://www.dropzonejs.com/
Github: https://github.com/enyo/dropzone

PHP:

public function accessoryUpload(){
mport('ORG.UploadFile');//引用php上傳類
$upload = new UploadFile();                 
$path = './Public/accessory/';//定義上傳檔案儲存路徑
$upload->savePath = $path;
if($upload->upload()) { //
我這裡主要是圖片,所以轉為2進位制存入了資料庫,如果還有很多word、excel之類的,可以將檔名存入資料庫
$infos = $upload->getUploadFileInfo();
foreach ($infos as $v) {
$accessory['csk']   = fileBin2hex($path.$v['name']);
$accessory['type']  = $v['extension'];
M('Accessory')->add($accessory);
}
}else{
$this->msg = sys_msg("error","附件上傳失敗");
$this->show($this->fetch('Public:msg'));
exit;
}

}

下面是一些效果圖,想要css和js檔案的加我微信(CC1107681823)或QQ(1107681823)私聊。