Getting Started
OverView
Complete and simple file uploader with image compressor in Vue.js
- Choice Theme : Thumbnail, Simple, Table
- Add custom fields (Title, Description, Tags, ...)
- Image compressor
- Select level for Image compressor
- Mange file extensions
- Manage files count
- Manage files size
- Multi languages support
- Add custom language
- Right to left support
- Multi file upload
- Responsive
- ...
Install
1. Install package:
$npm install handy-uploader
2. You should Install Vuetify on project:
Install on Vue CLI
$vue add vuetify
Install on Nuxt
$npm install @nuxtjs/vuetify -D
Once installed, update your nuxt.config.js
file to include the Vuetify module in the build.
// nuxt.config.js
buildModules: [
'@nuxtjs/vuetify',
]
Build Setup
Import handy-uploader to project
<script>
import handyUploader from 'handy-uploader/src/components/handyUploader';
export default {
components: {
handyUploader,
},
}
</script>
Import handy-uploader to project - Full Example
<handy-uploader
:documentAttachment.sync="handyAttachments"
:fileUploaderType= "'simple'"
:maxFileSize= "10240"
:imageCompressor= "true"
:imageCompressLevel= "0.8"
:maxFileCount= "10"
:badgeCounter= "true"
:thumb= "false"
:changeFileName="true"
:addFileDescription="true"
:addFileTag="true"
:tags= "['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4']"
>
</handy-uploader>
<script>
import handyUploader from 'handy-uploader/src/components/handyUploader';
export default {
components: {
handyUploader,
},
data: () => ({
handyAttachments: [],
}),
}
</script>
props
documentAttachment
The documentAttachment return array of uploaded file
Type: Array
Usage:
<handy-uploader
:documentAttachment.sync="handyAttachments"
>
<handy-uploader>
return Array:
[
{
file: {
name: 'file name',
size: 'file size',
base64: 'base64',
format: 'file upload format. for example:image/jpeg;base64'
tags: [],
description: 'file description'
}
}
]
fileUploaderType
The fileUploaderType define file uploader theme : thumbnaile
, simple
, table
Type: String
Default: thumbnail
Usage:
<handy-uploader
:fileUploaderType= "thumbnail"
>
<handy-uploader>
or
<handy-uploader
:fileUploaderType= "simple"
>
<handy-uploader>
or
<handy-uploader
:fileUploaderType= "table"
>
<handy-uploader>
cardType
Choose File Uploader Card Type Theme
cardTypes : default
, outlined
, shaped
, raised
, tile
Type: String
Default: default
Usage:
<handy-uploader
:cardType= "'shaped'"
>
<handy-uploader>
fileAccept
The fileAccept attribute of the input tag, MIME type
Type: String
Usage:
<handy-uploader
:fileAccept= "'image/png,image/gif,image/jpeg,image/webp'"
>
<handy-uploader>
Important:
If don`t send fileAccept, file uploader accept all file formats.
imageCompressor
handy-uploader, Uses the Browser's native canvas.toBlob API to do the compression work, which means it is lossy compression. General use this to precompress a client image file before upload it.
Type: Boolean
Default: true
Usage:
<handy-uploader
:imageCompressor= "true"
>
<handy-uploader>
imageCompressLevel
A Number between 0 and 1 indicating image quality.
Type: Number
Default: 0.5
Usage:
<handy-uploader
:imageCompressLevel= "0.6"
>
<handy-uploader>
maxFileSize
Maximum of file size upload. sent in prop to KB
Type: Number
Default: 5120
kb
Usage:
<handy-uploader
:maxFileSize= "10240"
>
<handy-uploader>
maxFileCount
Maximum of file upload
Type: Number
Default: 0
Usage:
<handy-uploader
:maxFileCount= "5"
>
<handy-uploader>
If you dont send maxFileCount, You can upload files without restrictions.
thumb
show / hidden thumb for images in table
and simple
file uploader
Type: Boolean
Default: true
Usage:
<handy-uploader
:thumb= "true"
>
<handy-uploader>
tableThumbColumn
show / hidden thumb column in table
file uploader
Type: Boolean
Default: true
Usage:
<handy-uploader
:tableThumbColumn= "false"
>
<handy-uploader>
tableFixedHeader
enable / disable table fixed header
Type: Boolean
Default: true
Usage:
<handy-uploader
:tableFixedHeader= "false"
>
<handy-uploader>
tableHeight
Set table height in px
.
Type: Number
Default: 400
Usage:
<handy-uploader
:tableHeight= "500"
>
<handy-uploader>
badgeCounter
Badge file counter state.
Type: Boolean
Default: true
Usage:
<handy-uploader
:badgeCounter= "false"
>
<handy-uploader>
rtlSupport
Enable RTL support languages.
Type: Boolean
Default: false
Usage:
<handy-uploader
:rtlSupport= "true"
>
<handy-uploader>
lang
Change file uploader languages.
Examples: English en
, Persian fa
, French fr
, Chinese ch
, Arabic ar
Type: String
Default: en
Usage:
<handy-uploader
:lang= "'fa'"
>
<handy-uploader>
customLang
Define Custom language for uploader.
Type: Object
Default: null
Usage:
<handy-uploader
:lang= "'custom'"
:customLang= "customLang"
>
<handy-uploader>
<script>
import handyUploader from 'handy-uploader/src/components/handyUploader';
export default {
components: {
handyUploader,
},
data: () => ({
handyAttachments: [],
customLang : {
custom : {
insertFile: 'Insert File',
insertNewFile: 'Insert New File1,
add: 'Add',
delete: 'Delete',
edit: 'Edit',
deleteDialog: {
message: 'Are you sure you want to delete the file?',
cancel: 'cancel',
},
table: {
thumb: 'Thumb',
name: 'Name',
size: 'Size',
tags: 'tags',
action: {
action: 'Action',
deleteTooltip: 'Delete'
}
},
size: {
kb: 'KB',
mb: 'MB',
},
maxFileSizeAlert: 'Max file Size is',
maxFileCountAlert: 'Max file Count is',
fileName: 'File Name',
fileDescription: 'File Description',
fileTags: 'File Tags',
}
},
}),
}
</script>
btnColor
change Button color.
Type: String
Default: info
Usage:
<handy-uploader
:btnColor= "'#00796B'"
>
<handy-uploader>
changeFileName
Change file name before upload.
Type: Boolean
Default: false
Usage:
<handy-uploader
:changeFileName= "true"
>
<handy-uploader>
addFileDescription
Add file Description before upload.
Type: Boolean
Default: false
Usage:
<handy-uploader
:addFileDescription= "true"
>
<handy-uploader>
addFileTag
Add file tags before upload.
Type: Boolean
Default: false
Usage:
<handy-uploader
:addFileTag= "true"
>
<handy-uploader>
tags
Array of file tags.
Type: Array
Usage:
<handy-uploader
:tags= "['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4']"
>
<handy-uploader>
cols
Change count of columns.
Type: Number
Default: 4
Usage:
<handy-uploader
:cols= "6"
>
<handy-uploader>
editPermission
Set edit Permission for edit attachment details.
Type: Boolean
Default: true
Usage:
<handy-uploader
:editPermission= "false"
>
<handy-uploader>
deletePermission
Set delete Permission for delete attachment details.
Type: Boolean
Default: true
Usage:
<handy-uploader
:deletePermission= "false"
>
<handy-uploader>
Code Examples
Thumbnail
<handy-uploader
:documentAttachment.sync="handyAttachments"
:fileUploaderType= "'thumbnail'"
:maxFileSize= "10240"
:imageCompressor= "true"
:imageCompressLevel= "0.8"
:maxFileCount="10"
:badgeCounter= "true"
:changeFileName="true"
:addFileDescription="true"
:addFileTag="true"
:tags= "['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4']"
>
</vue-file-uploader>
<script>
import handyUploader from 'handy-uploader/src/components/handyUploader';
export default {
components: {
handyUploader,
},
data: () => ({
handyAttachments: [],
}),
}
</script>
handyAttachments
The Array you define for file uploader
Simple
<vue-file-uploader
:documentAttachment.sync="handyAttachments"
:fileUploaderType= "'simple'"
:maxFileSize= "10240"
:imageCompressor= "true"
:imageCompressLevel= "0.8"
:maxFileCount= "10"
:badgeCounter= "true"
:thumb= "false"
:changeFileName="true"
:addFileDescription="true"
:addFileTag="true"
:tags= "['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4']"
>
</handy-uploader>
<script>
import handyUploader from 'handy-uploader/src/components/handyUploader';
export default {
components: {
handyUploader,
},
data: () => ({
handyAttachments: [],
}),
}
</script>
handyAttachments
The Array you define for file uploader
Table
<handy-uploader
:documentAttachment.sync="handyAttachments"
:fileUploaderType= "'table'"
:maxFileSize= "10240"
:imageCompressor= "true"
:imageCompressLevel= "0.8"
:maxFileCount= "10"
:badgeCounter= "true"
:thumb= "true"
:tableFixedHeader= "true"
:tableHeight= "400"
:tableThumbColumn= "true"
:changeFileName="true"
:addFileDescription="true"
:addFileTag="true"
:tags= "['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4']"
>
</handy-uploader>
<script>
import handyUploader from 'handy-uploader/src/components/handyUploader';
export default {
components: {
handyUploader,
},
data: () => ({
handyAttachments: [],
}),
}
</script>
handyAttachments
The Array you define for file uploader