4.7 KiB
Upload
Upload files by clicking or drag-and-drop
Click to upload files
:::demo Customize upload button type and text using slot
.
<el-upload
action="//jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove">
<el-button size="small" type="primary">Click to upload</el-button>
<div class="el-upload__tip" slot="tip">jpg/png files with a size less than 500kb</div>
</el-upload>
<script>
export default {
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
</script>
:::
Drag to upload
You can drag your file to a certain area to upload it.
:::demo Specifying the type
attribute as drag
will change the upload control to a drag-and-drop style. Additionally, you can use the multiple
attribute to control whether uploading multiple files is permitted. on-preview
and on-remove
are hook functions that will be called after clicking on the uploaded file link and after clicking to remove the uploaded file, respectively.
<el-upload
action="//jsonplaceholder.typicode.com/posts/"
type="drag"
:multiple="true"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-success="handleSuccess"
:on-error="handleError"
>
<i class="el-icon-upload"></i>
<div class="el-dragger__text">Drop file here or <em>click to upload</em></div>
<div class="el-upload__tip" slot="tip">jpg/png files with a size less than 500kb</div>
</el-upload>
<script>
export default {
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
</script>
:::
Upload single image
This mode is specifically for image uploading, and the thumbnail will display in the origin place.
:::demo thumbnail-mode
attribute allows you to force the upload content to image only, and can display the thumbnail of the uploaded image.
<el-upload
action="//jsonplaceholder.typicode.com/posts/"
type="drag"
:thumbnail-mode="true"
:on-preview="handlePreview"
:on-remove="handleRemove"
>
<i class="el-icon-upload"></i>
<div class="el-dragger__text">Drop file here or <em>click to upload</em></div>
<div class="el-upload__tip" slot="tip">jpg/png files with a size less than 500kb</div>
</el-upload>
<script>
export default {
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
</script>
:::
Attributes
Attribute | Description | Type | Accepted Values | Default |
---|---|---|---|---|
action | required, request URL | string | — | — |
headers | request headers | object | — | — |
multiple | whether uploading multiple files is permitted | boolean | — | — |
data | additions options of request | object | — | — |
name | key name for uploaded file | string | — | file |
with-credentials | whether cookies are sent | boolean | — | false |
show-upload-list | whether to show the uploaded file list | boolean | — | true |
type | type of Upload | string | select/drag | select |
accept | accepted file types, will not work when thumbnail-mode is true |
string | — | — |
on-preview | hook function when clicking the uploaded files | function(file) | — | — |
on-remove | hook function when files are removed | function(file, fileList) | — | — |
on-success | hook function when uploaded successfully | function(response, file, fileList) | — | — |
on-error | hook function when some errors occurs | function(err, response, file) | — | — |
before-upload | hook function before uploading with the file to be uploaded as its parameter. If false or a Promise is returned, uploading will be aborted |
function(file) | — | — |
thumbnail-mode | whether thumbnail is displayed | boolean | — | false |
Events
Event Name | Description | Parameters |
---|---|---|
clearFiles | clear the uploaded file list | — |