> ## Documentation Index
> Fetch the complete documentation index at: https://cloudinary.com/documentation/llms.txt
> Use this file to discover all available pages before exploring further.

# Angular (Legacy) image and video upload



When using the Angular SDK, you can use one of several options to upload files directly to Cloudinary without the need for server-side operations or authentication signatures.

## Upload options
&nbsp;
* **3rd party Angular upload tools**:  There are a number of Angular and Angular 2.x and later 3rd party upload tools available. Configure your upload tool to upload to your Cloudinary product environment and use an [upload preset](upload_presets) to define your upload parameters.
### Upload endpoint

The [upload endpoint](image_upload_api_reference#upload) is `https://api.cloudinary.com/v1_1/${cloudName}/upload`. To use the endpoint in your application, use the [JavaScript Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/fetch) to call the Cloudinary `upload` endpoint and pass: 

* an **unsigned** [upload preset](upload_presets) with the [upload method options](image_upload_api_reference#upload) you want to apply for all files
* the file(s) to upload
* other [unsigned upload parameters](image_upload_api_reference#unsigned_upload_parameters) to apply to the selected files (e.g. `tags`, if needed).

Check out the [Upload images with Fetch API video tutorial](upload_images_with_fetch_api_tutorial), which walks through setting up upload parameters with FormData and making HTTP requests to upload images programmatically from the browser.

> **NOTES**:
>
> * Each of the upload options described above can also be performed as a signed upload, but in this case, an authentication signature must be generated on your backend server. This can be implemented in conjunction with one of Cloudinary's [backend SDKs](cloudinary_sdks), which implement helpers to [automatically generate the authentication signature](authentication_signatures#using_cloudinary_backend_sdks_to_generate_sha_authentication_signatures) for the upload. 

> * If you are using jQuery in your app, you can take advantage of the [built-in upload functionality in Cloudinary's jQuery SDK](jquery_image_and_video_upload#direct_uploading_from_the_browser). This solution uses HTML5 cross-origin resource sharing (CORS) and gracefully degrades to a seamless iframe based solution for older browsers.

## Code examples

* **Git sample project:** Use `ng2-file-upload` in the [photo-upload.component.ts](https://github.com/cloudinary/cloudinary_angular/tree/master/projects/angular-cld/samples/photo_album/app/js/photo-album/photo-upload.component.ts) file of the Photo Album sample project on GitHub. * **Code sample:** Implement the [upload widget](upload_widget#quick_example).
* **Code explorer:** [Upload multiple files using a form](client_side_uploading#code_explorer_upload_multiple_files_using_a_form_unsigned) in pure JavaScript using the Cloudinary upload endpoint.
* **CodePen:** [Use the JavaScript Fetch API to upload files](https://codepen.io/team/Cloudinary/pen/OJreJmz) in vanilla JavaScript using the Cloudinary upload endpoint for unsigned uploading with an upload preset. 
* **Sample project:** [Perform signed uploads from the browser](client_side_uploading#sample_project_upload_multiple_files_using_a_form_signed) by generating a signature on the server.* **Git sample project:**  Upload files from your Angular application using jQuery, in the [Photo album with jQuery](https://github.com/cloudinary/cloudinary_angular/tree/master/projects/angular-cld/samples/photo_album_with_jquery) sample project.
