# Vue Upload Overview

The Kendo UI for Vue Upload helps users send files from their file systems to dedicated server handlers which are configured to receive them.

The Kendo UI for Vue Upload component is part of the Kendo UI for Vue library of Vue UI components. It is distributed through NPM under the [kendo-vue-upload package](https://www.npmjs.com/package/@progress/kendo-vue-upload).

<CtaPanelOverview></CtaPanelOverview>

## Basic Usage

The following example demonstrates the Upload in action.

[Demo Source](https://demos.telerik.com/kendo-vue-ui/upload/overview/source.txt)

## Functionality and Features

* [Disabled Upload](https://www.telerik.com/kendo-vue-ui-develop/components/upload/disabled-state)
* [Modes of operation](https://www.telerik.com/kendo-vue-ui-develop/components/upload/modes)
* [Credentials and additional data](https://www.telerik.com/kendo-vue-ui-develop/components/upload/credentials)
* [File processing](https://www.telerik.com/kendo-vue-ui-develop/components/upload/file-processing)
* [File restrictions](https://www.telerik.com/kendo-vue-ui-develop/components/upload/restrictions)
* [Dragging and dropping](https://www.telerik.com/kendo-vue-ui-develop/components/upload/drag-and-drop)
* [Action Buttons](https://www.telerik.com/kendo-vue-ui-develop/components/upload/action-buttons)
* [Custom rendering](https://www.telerik.com/kendo-vue-ui-develop/components/upload/custom-rendering)
* [External Drop Zone](https://www.telerik.com/kendo-vue-ui-develop/components/upload/external-drop-zone)
* [Globalization](https://www.telerik.com/kendo-vue-ui-develop/components/upload/globalization)
* [Keyboard navigation](https://www.telerik.com/kendo-vue-ui-develop/components/upload/keyboard-navigation)

## Installation

To initialize the Upload, either:

* [Use the CDN service](https://www.telerik.com/kendo-vue-ui-develop/components/upload#using-cdn), or
* [Use Webpack](https://www.telerik.com/kendo-vue-ui-develop/components/upload#initializing-with-webpack).

### Using CDN

To use the Kendo UI for Vue Upload component with CDN, follow the below steps:

1. Reference the `upload` and `intl` packages.

```sh
  <script src="https://unpkg.com/@progress/kendo-vue-intl@latest/dist/cdn/js/kendo-vue-intl.js"></script>
  <script src="https://unpkg.com/@progress/kendo-vue-upload@latest/dist/cdn/js/kendo-vue-upload.js"></script>
```

2. Reference one of the Kendo UI themes to style your components.

```sh
    // Load the Kendo Meridian Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-meridian@latest/dist/all.css">

    // Load the Kendo Bootstrap Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-bootstrap@latest/dist/all.css">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    // To load the Kendo Material Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-material@latest/dist/all.css">

    // To load the Kendo Fluent Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-fluent@latest/dist/all.css">

    // Load the Kendo Default Theme
    <link rel="stylesheet" href="https://unpkg.com/@progress/kendo-theme-default@latest/dist/all.css">
```

3. Follow the instructions in [this article](https://www.telerik.com/kendo-vue-ui-develop/components/my-license#installing-or-updating-the-license-key) to activate your product license. You can skip this step if your application already contains a license key.

### Initializing with Webpack

1. Download and install the package. Use Node.js v5.0.0 or later.

   ```sh
   npm install --save @progress/kendo-vue-upload @progress/kendo-licensing @progress/kendo-svg-icons
   ```

2. Once installed, import the package module.

   ```jsx
   // ES2015 module syntax
   import { Upload } from '@progress/kendo-vue-upload';
   ```

   ```jsx
   // CommonJS format
   const { Upload } = require('@progress/kendo-vue-upload');
   ```

3. You are required to install one of the Kendo UI for Vue themes to style your components. For more information on how to add the styles, refer to the article on [getting started](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/javascript-composition-api#5-import-the-kendo-ui-for-vue-css-styles).

4. Follow the instructions on the Kendo UI for Vue [My License page](https://www.telerik.com/kendo-vue-ui-develop/components/my-license) to activate your license. You can skip this step if your application already contains a Kendo UI for Vue license file.

## Dependencies

The Upload package requires the following [peer dependencies](https://nodejs.org/en/blog/npm/peer-dependencies/) that have to be installed by your application:

* vue 3.0.0\*
* @progress/kendo-licensing
* @progress/kendo-svg-icons

## Events

The following example demonstrates basic Upload events.

[Demo Source](https://demos.telerik.com/kendo-vue-ui/upload/events/source.txt)

## Support and Learning Resources

* [Upload Homepage](https://www.telerik.com/kendo-vue-ui/upload)
* [API Reference of the Upload Component](https://www.telerik.com/kendo-vue-ui-develop/components/upload/api)
* [Getting Started with Kendo UI for Vue - JavaScript (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/javascript-composition-api)
* [Getting Started with Kendo UI for Vue - TypeScript (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/typescript-composition-api)
* [Getting Started with Kendo UI for Vue - JavaScript + Options API (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/javascript-options-api)
* [Getting Started with Kendo UI for Vue - TypeScript + Options API (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/typescript-options-api)
* [Getting Started with Kendo UI for Vue - Nuxt 3 (Online Guide)](https://www.telerik.com/kendo-vue-ui-develop/components/getting-started/get-started-nuxt-3)
* [Virtual Classroom (Training Course for Registered Users)](https://learn.telerik.com/learn/course/internal/view/elearning/45/kendo-ui-for-vue-with-typescript)
* [Upload Forum](https://www.telerik.com/forums/kendo-ui-vue?searchText=upload)
* [Knowledge Base](https://www.telerik.com/kendo-vue-ui/components/knowledge-base/)
* [Kendo UI Productivity Tools extension for VS Code](https://www.telerik.com/kendo-vue-ui-develop/components/vscode-extension)

## Additional Resources

* [Vue Blogs](https://www.telerik.com/blogs/tag/kendo-ui-for-vue)
* [Kendo UI for Vue Roadmap](https://www.telerik.com/support/whats-new/kendo-vue-ui/roadmap)
