Skip to content
Tauri

Upload

Upload files from disk to a remote server over HTTP. Download files from a remote HTTP server to disk.

Supported Platforms

This plugin requires a Rust version of at least 1.75

Platform Level Notes
windows
linux
macos
android
ios

Setup

Use your project’s package manager to add the dependency:

npm run tauri add upload

Usage

Once you’ve completed the registration and setup process for the plugin, you can access all of its APIs through the JavaScript guest bindings.

Here’s an example of how you can use the plugin to upload and download files:

import { upload } from '@tauri-apps/plugin-upload';
// when using `"withGlobalTauri": true`, you may use
// const { upload } = window.__TAURI__.upload;
upload(
'https://example.com/file-upload',
'./path/to/my/file.txt',
({ progress, total }) =>
console.log(`Uploaded ${progress} of ${total} bytes`), // a callback that will be called with the upload progress
{ 'Content-Type': 'text/plain' } // optional headers to send with the request
);
import { download } from '@tauri-apps/plugin-upload';
// when using `"withGlobalTauri": true`, you may use
// const { download } = window.__TAURI__.upload;
download(
'https://example.com/file-download-link',
'./path/to/save/my/file.txt',
({ progress, total }) =>
console.log(`Downloaded ${progress} of ${total} bytes`), // a callback that will be called with the download progress
{ 'Content-Type': 'text/plain' } // optional headers to send with the request
);

Permissions

By default all potentially dangerous plugin commands and scopes are blocked and cannot be accessed. You must modify the permissions in your capabilities configuration to enable these.

See the Capabilities Overview for more information and the step by step guide to use plugin permissions.

src-tauri/capabilities/main.json
{
"permissions": [
...,
"upload:default",
]
}

Default Permission

This permission set configures what kind of operations are available from the upload plugin.

Granted Permissions

All operations are enabled by default.

  • allow-upload
  • allow-download

Permission Table

Identifier Description

upload:allow-download

Enables the download command without any pre-configured scope.

upload:deny-download

Denies the download command without any pre-configured scope.

upload:allow-upload

Enables the upload command without any pre-configured scope.

upload:deny-upload

Denies the upload command without any pre-configured scope.


© 2024 Tauri Contributors. CC-BY / MIT