# 上傳
允許用戶通過文件表單或占位符域來上傳文件
## 用法
這個Javascript組件運用了最新的 XMLHttpRequest Level 2 規范,提供了通過包含上傳進度條的Ajax進行文件上傳追蹤的功能。本組件提供了兩種上傳文件的方式: `select` 和 `drop`。 `select` 請求只能被用在`<input type="file">` 元素中,而 `drop`基本可以用在任何元素,通過從桌面將文件拖拽到指定元素就能輕松實現上傳。記住,本組件并不在服務器上處理文件上傳。
注意 使用此組件需要額外添加 `upload.css` 文件,在`css/components`文件夾中。此組件需要額外添加 `upload.js` 文件,在`js/components`文件夾中。
上傳組件需要根據你的要求單獨進行實施。在我們的例子中,我們使用[占位符](placeholder.html)和[文件表單](form-file.html),同時使用了`drop` 和 `select`請求。另外,還是用了[進度條](progress.html)來顯示上傳進度。
### Example

### Markup
```
<div id="upload-drop" class="uk-placeholder">
Info text... <a class="uk-form-file">Select a file<input id="upload-select" type="file"></a>.
</div>
<div id="progressbar" class="uk-progress uk-hidden">
<div class="uk-progress-bar" style="width: 0%;">...</div>
</div>
```
* * *
### JavaScript
為了創建 `select` 和 `drop` 上傳監聽器,你需要使用目標元素和選項來實例化每個上傳class,以定義回調和其他有用的設置。
```
<script>
$(function(){
var progressbar = $("#progressbar"),
bar = progressbar.find('.uk-progress-bar'),
settings = {
action: '/', // 上傳路徑 url
allow : '*.(jpg|jpeg|gif|png)', // 只允許上傳圖片
loadstart: function() {
bar.css("width", "0%").text("0%");
progressbar.removeClass("uk-hidden");
},
progress: function(percent) {
percent = Math.ceil(percent);
bar.css("width", percent+"%").text(percent+"%");
},
allcomplete: function(response) {
bar.css("width", "100%").text("100%");
setTimeout(function(){
progressbar.addClass("uk-hidden");
}, 250);
alert("Upload Completed")
}
};
var select = UIkit.uploadSelect($("#upload-select"), settings),
drop = UIkit.uploadDrop($("#upload-drop"), settings);
});
</script>
```
* * *
## JavaScript 選項
| 選項 | 可用值 | 默認值 | 描述 |
| --- | --- | --- | --- |
| `action` | string | '' | 上傳的目標URL |
| `single` | boolean | true | 逐一進行文件發送 |
| `param` | string | files[] | 傳遞查詢名稱 |
| `params` | JSON Object | {} | 額外的請求參數 |
| `allow` | string | *.* | 文件過濾器 |
| `filelimit` | integer | false | 文件上傳數量限制 |
| `type` | (text | json) | text | 來自服務器的響應類型 |
### 回調事件
| 名稱 | 參數 |
| --- | --- |
| `before` | settings, files |
| `beforeAll` | files |
| `beforeSend` | xhr |
| `progress` | percent |
| `complete` | response, xhr |
| `allcomplete` | response, xhr |
| `notallowed` | file, settings |
| `loadstart` | event |
| `load` | event |
| `loadend` | event |
| `error` | event |
| `abort` | event |
| `readystatechange` | event |
- UIkit 中文文檔
- 開始使用
- 初學者
- 開始使用
- 如何自定義
- 布局示例
- 開發者
- 項目結構
- Less & Sass 文件
- 創建主題
- 創建樣式
- Customizer.json
- JavaScript
- 自定義前綴
- 核心組件
- 默認
- 基礎
- 打印
- 布局類組件
- 網格
- 面板/Panel
- 塊/Block
- 文章
- 評論/Comment
- 效果/Utility
- Flex 布局
- 覆蓋/Cover
- 導航類組件
- 導航菜單
- 導航欄
- 二級導航
- 面包屑/Breadcrumb
- 分頁
- 選項卡
- 縮略圖導航/Thumbnav
- 頁面元素
- 列表
- 描述列表
- 表格
- 表單
- 常用組件
- 按鈕
- 圖標
- 關閉/Close
- 徽章/Badge
- 提示框
- 縮略圖/Thumbnail
- 遮罩/Overlay
- 文本
- 列
- 動畫
- 對比度/Contrast
- JAVASCRIPT組件
- 下拉菜單
- 模態對話框
- 抽屜/Off-canvas
- 切換器/Switcher
- 撥動/toggle
- 滾動監聽/Scrollspy
- 平滑滾動
- 附加組件
- 布局類組件
- 動態網格
- 視差網格
- 導航類組件
- 圓點導航
- 滑動導航/Slidenav
- 動態分頁
- 常用組件
- 高級表單
- 文件表單/Form file
- 密碼表單
- 選擇表單
- 占位符
- 進度條/Progress
- JAVASCRIPT組件
- 燈箱/Lightbox
- 自動完成/Autocomplete
- 日期選擇器/Datepicker
- HTML 編輯器
- 滾動條/Slider
- 滑塊集/Slideset
- 幻燈片/Slideshow
- 視差/Parallax
- 手風琴/Accordion
- 通知/Notify
- 搜索/Search
- 可嵌套/Nestable
- 可排序/Sortable
- 附著/Sticky
- 時間選擇器
- 工具提示/Tooltip
- 上傳