1.帶模板的upload,可以根據上傳文件類型的不同,來切換對應的icon圖標
CSS代碼:
.file-icon { display: inline-block; float: left; width: 48px; height: 48px; margin-left: 10px; margin-top: 13.5px; } .img-file { background-image: url('../../imgs/upload/jpg.png') } .doc-file { background-image: url("../../imgs/upload/doc.png") } .pdf-file { background-image: url("../../imgs/upload/pdf.png") } .xls-file { background-image: url("../../imgs/upload/xls.png") } .zip-file { background-image: url("../../imgs/upload/zip.png") } .default-file { background-image: url("../../imgs/upload/default.png") } #example .file-heading { font-family: Arial; font-size: 1.1em; display: inline-block; float: left; width: 60%; margin: 0 0 0 20px; height: 25px; -ms-text-overflow: ellipsis; -o-text-overflow: ellipsis; text-overflow: ellipsis; overflow:hidden; white-space:nowrap; } #example .file-name-heading { font-weight: bold; margin-top: 20px; } #example .file-size-heading { font-weight: normal; font-style: italic; } li.k-file div.file-wrapper { position: relative; height: 75px; } .k-upload div.k-dropzone{ text-align: center; }
HTML代碼:
<div id="example"> <div class="demo-section k-content"> <input type="file" name="files" id="files" /> </div> </div> <!-- 模板 --> <script id="fileTemplate" type="text/x-kendo-template"> <span class='k-progress'></span> <div class='file-wrapper'> <span class='file-icon #=addExtensionClass(files[0].extension)#'></span> <h4 class='file-heading file-name-heading'>Name: #=name#</h4> <h4 class='file-heading file-size-heading'>Size: #=size# bytes</h4> <strong class="k-upload-status"> <button type='button' class='k-upload-action'></button> <button type='button' class='k-upload-action'></button> </strong> </div> </script>
JavaScript代碼:
$("#files").kendoUpload({
multiple: true,
async: {
saveUrl: "save",
removeUrl: "remove",
autoUpload: false
},
select:function(e){
console.log("Select :: ",e.files);
},
template: kendo.template($('#fileTemplate').html())
});
function addExtensionClass(extension) {
switch (extension) {
case '.jpg':
case '.img':
case '.png':
case '.gif':
return "img-file";
case '.doc':
case '.docx':
return "doc-file";
case '.xls':
case '.xlsx':
return "xls-file";
case '.pdf':
return "pdf-file";
case '.zip':
case '.rar':
return "zip-file";
default:
return "default-file";
}
}
效果圖:

參考地址:https://demos.telerik.com/kendo-ui/upload/index
基本屬性:
| directory | 是否允許選擇文件夾,默認為false |
| directoryDrop | 是否允許刪除文件夾,默認為false,設置后僅允許你刪除要上傳的文件夾,無法上傳文件 |
| dropZone | 初始化,提供拖放文件上傳 |
| enable | 是否禁用,默認true,如果要重新設置,使用enable() |
| multiple | 是否能選擇多個文件,默認true,如果設為false,則每次只能選擇一個文件 |
| showFileList | 是否要禁用文件列表,默認為true,如果要自定義UI,可以設置為false |
| template | 用於呈現文件列表中的文件模板 |
| files | 初始化的時候,在文件列表中呈現的文件,在設置了async時,該選項才可用,顯示上傳成功 |
| validation | 驗證,包含三個參數。allowedExtensions(允許的文件類型)、maxFileSize(最大文件大小,以字節為單位)、minFileSize(最小文件大小) |
| async | 異步上傳 |
| localization | 局部設置的(我沒有用過) |
async:
| autoUpload | 是否立即上傳,可選的值:true、false 默認為true |
| batch | 是否批量上傳,可選的值:true、false 默認false |
| chunkSize | 設置文件的大小,只有當batch為false時,才可用 |
| concurrent | 是否批量上傳,默認:false 只有當chunkSize設置時,該屬性才能用 |
| autoRetryAfter | 在多少毫秒之后,重復上傳失敗的文件 |
| maxAutoRetries | 上傳失敗時,最大的嘗試次數,設置了autoRetryAfter,才可用 |
| removeField | 提交表單域的名稱removeUrl |
| removeUrl、saveUrl | 移除文件的URL地址 |
| removeVerb | 移除文件是,HTTP請求的方式(我理解的),默認:post |
| saveField | 提交表單域的名稱saveUrl,默認是輸入名稱 |
| useArrayBuffer | 默認:false 默認情況下,文件作為文件數據上傳。如果設置為true,使用fileReader將文件作為文件緩沖區讀取,此緩沖區在請求正文中發送。fileReader消耗了瀏覽器的內存。如果用戶上傳大文件,可能會消耗客戶端的所有可用內存,甚至可能上傳失敗。 |
| withCredentials | 默認為:true 控制是否為跨站點請求發送憑證 |
async: {
saveUrl: "save", removeUrl: "remove", autoUpload: true }
