UNPKG

@myshell/vue-image-chooser

Version:
82 lines (67 loc) 2.19 kB
# vue-image-chooser This is vue plugin with simple component for choosing image. It supports easy implementation for image upload to the backend. ## Installation ```sh npm i vue-image-chooser --save ``` Registring plugin: ```js import VueImageChooser from 'vue-image-chooser' Vue.use(VueImageChooser) ``` This will make vue-image-chooser component globaly available. Bellow is example how to use it with axios library ```html <div class="MyContent"> <h1>Click on chooser to choose image</h1> <div style="width:400px;margin: 0 auto"> <vue-image-chooser name="image-chooser" @change="uploadFile" :progress="progress" :error="error"/> </div> </div> ``` ```js export default { data() { return { progress: null, error: null, } }, methods: { uploadFile(file) { this.progress = 0; let formData = new FormData(); formData.append('image', file); var config = { onUploadProgress: progressEvent => { var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total ) this.progress = percentCompleted } } try { const { data } = await axios.post( '/api/route/to/upload/image', formData, config ) } catch (e) { this.error = 'Error has occured' } } } } ``` ## Usage The component takes five props: - `name` (String): Required prop, must be unique (you can consider it like id) - `progress` (Number): Number between `0-100`. If it is `null` or `100` component consider uploading process finished. - `error` (String): Error message in case that server responded with error - `height` (String): Default is `350px` - `displayName` (String): Default is `Add Photo` - text that appears below the camera image - `disabled` (Boolean): Default is `false` - image can't be change The component emits `change` event with single file as data, when it recieve an image, after it can be uploaded as described above) ## Example: https://schumskie.github.io/vue-image-chooser/ ## NOTE: Component by default has width of 100%. Because of that it should put in holder of desired width.