Thunkable Docs
Build an AppDrag and Drop DocsSnap to Place DocsAcademy
Drag and Drop
Drag and Drop
  • What is Thunkable?
  • 🗺️Getting Started
    • Getting Started Guide
    • Keyboard Shortcuts
    • Undo Redo
    • Thunkable Account
      • Account Management
    • Preview and Test your App
    • Versioning
    • Data Sources
      • Google Sheets Data Source
      • Airtable Data Source
      • Webflow Data Source
      • Local Table Data Source
    • Project Collaboration
      • Organizations
    • 🎓Sample Apps & Tutorials
      • Thunkable Community Forums
      • Sample Apps
      • Video Tutorials
        • Thunkable Live App
          • How to Test and Troubleshoot with Thunkable Live App
        • Data Source Tutorials
          • Connecting to Data Sources
            • Google Sheets
            • Local Table
          • Create Data in a Thunkable Data Source
          • Read Data in a Thunkable Data Source
          • Update Data in a Thunkable Data Source
          • Delete Data in a Thunkable Data Source
        • User Auth & Management
          • Firebase
            • User Sign-Up, Sign-In, and Auth
            • User Sign Out and Password Reset
          • Google
            • User Sign-Up, Sign-In, Sign-Out, and Auth
          • Apple
            • User Sign-Up, Sign-In, Sign-Out, and Auth
        • Projects
          • How to Save Versions of Your Thunkable Project
          • How to Copy and Customize Public or Sample Thunkable Projects
        • User Interface & Design
          • Screens
            • Save and Reuse Thunkable Screens
            • Change Thunkable Screens with a Button Click
            • Create Scrollable Screens in Your Thunkable App
          • Navigators
            • How to Use the Thunkable Stack Navigator
            • How to Use Thunkable Top and Bottom Tab Navigators
            • How to Use the Thunkable Drawer Navigator
            • Combine Figma Frames with Thunkable Navigators
          • Components
            • How to Use the Visibility Property to Create Modals in Thunkable
          • Data Visualization
            • Customize a Data Viewer
          • Text
            • Implement Text Input Validation
        • Alerts & Notifications
          • Display Alert Messages in Your Thunkable App
          • How to Create Three-Button Alert Messages
        • Files
          • Cloudinary
            • Store and Access Cloudinary Files in Your Thunkable App
        • Camera
          • How to Use the Device’s Camera
          • How to Use the Device’s Video Camera
          • Use the Device’s Camera as a QR or Barcode Scanner
        • Realtime Databases
          • Firebase
            • How to Read Data in a Firebase Realtime Database
            • How to Update Data in a Firebase Realtime Database
        • Advanced Blocks
          • Connect Your Thunkable App to a Web API
        • Thunkable Academy
          • Building Your First Thunkable App
            • Getting Started with Thunkable
            • How to Design a Thunkable App
            • How to Connect a Thunkable App to a Data Source
            • How to Make A Thunkable App Interactive with Blocks
          • Thunkable No Code App Creation Basics
            • Thunkable UI Components and App Features
            • Understanding Thunkable's Drag and Drop Block Builder
            • Design, Develop, Debug, and Deploy Your App
        • Hour of Code
          • 2021 - Build an Informational App
          • 2022 - Build a Scavenger Hunt App
          • 2023 - Build a Translator and Text-to-Speech App
        • App Building
          • How to Build a Translation App in Thunkable
          • How to Create an Image Recognition App with Thunkable
          • How to Create a Text-to-Speech App in Thunkable
  • 🎨App Design
    • User Interface (UI) Components
      • Basic Components
        • Button Component
        • Label Component
        • Rich Text Component
        • Image Component
        • Text Input Component
        • Layout Component
        • Group Component
      • Data Components
        • Simple List Component
        • Data Viewer Components
          • Data Viewer List Component
          • Data Viewer Grid Component
          • Custom Data Viewer
      • Input Components
        • Switch Component
        • Slider Component
        • Checkbox Component
        • Date Input Component
        • Time Input Component
      • Media Components
        • Animation Component
        • Video Component
        • Loading Icon Component
      • Embed Components
        • Web Viewer Component
        • Map Component
        • Canvas Component
        • PDF Reader Component
        • Rating Component
      • Modules
        • Introduction
        • User Guide
      • Generative AI
    • Screens
      • Save and Reuse Screens
      • Improve Thunkable Load Time
    • Navigators
      • Top Tab Navigator
      • Bottom Tab Navigator
      • Drawer Navigator
      • Stack Navigator
    • Figma Integration
  • 🛠️Blocks
    • Thunkable Blocks Overview
    • Core Blocks
      • Control Blocks
      • Logic Blocks
      • Math Blocks
      • Text Blocks
      • Lists Blocks
      • Color Blocks
      • Device Blocks
      • Objects Blocks
      • Variables Overview
        • Connect a Firebase Realtime Database
        • Variables Blocks
      • Functions Blocks
    • App Features Blocks
      • Speech Blocks
      • Sound Blocks
      • Share Blocks
      • Camera Blocks
      • Files Blocks
      • Sign In Blocks
        • User Sign Up, Sign In, and Authentication with Firebase
        • User Sign Up, Sign In, and Authentication with Google
        • User Sign Up, Sign In, and Authentication with Apple
      • Location Blocks
      • Push Notification Blocks
      • In-App Purchase Blocks (with RevenueCat)
      • Data Sources Blocks
      • Alerts Blocks
      • Timer Blocks
      • Sensors Blocks
        • Gyroscope
        • Magnetometer
        • Accelerometer
        • Location Sensor
      • Ads by AdMob
    • Advanced Blocks
      • Web APIs Blocks
        • CORS Policy
        • 🆓No Auth APIs
          • Update Data in a Data Source
          • CRUD Operations
          • Setting Headers
        • 📊Charting APIs
          • Create a chart template
          • Charting in Thunkable
      • Bluetooth Low Energy Blocks
      • OpenAI Services ChatGPT Integration Blocks
      • "Any Component" Blocks
      • JavaScript Web Bridge
  • ⚙️Settings
    • App Settings
      • Tablet View
    • Assets
    • Cloud Variable Viewer
    • Manage your Projects
      • My Projects Page
      • Thunkable Projects
      • Duplicate Project
      • Share Your App
      • Download Your App
        • Download Your App on iOS
        • Download Your App on Android
      • Add to Home Screen
      • Managing Project Storage
      • App Data Privacy
      • Delete Project
  • 📱Publishing
    • Overview
    • Publish to the Apple App Store
      • User Guide
      • Troubleshooting
      • Review Process
      • Tracking Usage Description
    • Publish to Google Play Store
      • User Guide
      • Troubleshooting
      • Review Process
    • Publish as a Web App
      • User Guide
      • Custom Domains
      • Troubleshooting
    • Testing
      • Testing on iOS via TestFlight
      • Testing on Android
    • Troubleshooting
      • Publishing Checklist
      • Generate Screenshots
  • 🎮Gaming
    • Gaming Overview
      • Canvas Label
      • Sprites
      • Sprite Gallery
    • Gaming Blocks
      • Events
      • Motion
      • Looks
      • Direction
      • Sensing
      • Add & Remove
      • Stage
  • 🗃️Additional Resources
    • Release Notes
      • Release Notes 2024
      • Release Notes 2023
    • Troubleshooting
      • Can't Sign in to Thunkable?
      • FAQs
    • Minimum Requirements
    • Bugs and Product Feedback
    • App Services and Emulators
Powered by GitBook
On this page
  • Block: Image/Video from Photo Library
  • Block: File from Device
  • Upload a File to the Cloud
  • Video Tutorial
  • Connect Your Cloudinary Account to Your Thunkable Project
  • Block: url from uploaded file / upload file
  • Block: Resize Image
  • Download A File Within Your App
  • Block: Download File from URL
  • Block: Get Downloaded Files
  • Block: Delete Downloaded File
  • Block: Rename Downloaded File

Was this helpful?

Export as PDF
  1. Blocks
  2. App Features Blocks

Files Blocks

PreviousCamera BlocksNextSign In Blocks

Last updated 7 months ago

Was this helpful?

Advanced Blocks

For most blocks in this drawer, you can right-click the block and select Show advanced block to see an expanded block with additional outputs. Both the simple and advanced blocks will be explained in this document.

Block: Image/Video from Photo Library

This block will open the user's photo library and allow the user to select a photo or video. The file can then be used in the app.

Advanced Block

Output
Data Type
Function

photo or video

image/video

if a file was selected, returns the file

was cancelled

true/false

returns whether the user cancelled selecting a file

error

text

if there was an error, returns the error

Block: File from Device

This block will open the user's file library and allow the user to select a file. The file can then be used in the app.

You can allow the user to upload any kind of file, or limit their selection by file type using the drop down menu.

Your end users may experience lags or delays if the file size they try to upload is larger than 5MB.

Advanced Block

Output
Description
Data Type

file

Points to the file that has been uploaded

Data type of the file that has been uploaded. Can also return address of the file as text

name

Name of the uploaded file

Text

mime type

Text

size

Returns size of uploaded file in bytes

Number

was cancelled

Indicates whether the end user cancelled selecting a file

True/False

error

If there is an error, returns the error. Else returns null

Text

Upload a File to the Cloud

Video Tutorial

How to Store and Access Cloudinary Files in Your Thunkable App

In this tutorial, you’ll learn how to use files stored in Cloudinary in your app and how to upload files directly from your app to Cloudinary.

Connect Your Cloudinary Account to Your Thunkable Project

Thunkable provides a shared Cloudinary account for your convenience, but we strongly recommend creating your own account to ensure privacy for your uploaded media. In addition, the shared Thunkable Cloudinary account has a media size limit of 10MB per app and your files will be deleted after 90 days.

To connect your Cloudinary accout to your Thunkable project:

  1. From your Cloudinary dashboard, retrieve the following account details:

    1. Cloud Name

    2. API Key

    3. API Secret

  2. Return to your Thunkable project page.

  3. Scroll down until you reach the Cloudinary Settings section.

Block: url from uploaded file / upload file

Advanced Block

Output
Data Type
Function

URL

text

returns a URL for the uploaded file

error

text

if there was an error, returns the error

Connect the image from photo library block to the url from uploaded file block to allow users to browse and select any image stored on their device's library.

Connect the photo from camera block to the url from uploaded file block to let users snap a picture from their device's camera and upload it instantly.

Connect the image file from device block to the url from uploaded file block for a more universal option that works on Android, iOS, and even in web apps, allowing users to upload any image file from their device, no matter the platform.

Block: Resize Image

This block will take an image file and return it in the given dimensions, quality and format.

Advanced Block

Input
Data Type
Function

resize image

Any image file

The image to be resized

width

Number

Width in pixels to resize image file to

height

Number

Height in pixels to resize image file to

quality

Number

Quality of resulting image, as a percentage of quality of original image

using ... format

Select from menu

Select image type for resulting image

Output
Data Type
Function

resized Image

Image

The resized image in the selected format and quality level

error

Text

If there was an error, returns the error. Else returns NULL

Download A File Within Your App

The Download File within app blocks enable your app's users to download files used in your app on request, ensuring a better offline user experience.

Block: Download File from URL

This block allows you to download a file from a URL onto your device. This file cannot be accessed from outside the app.

Advanced Block

Output
Data Type
Function

file

Text

Returns a file name and extension for the downloaded file.

progress

number

Returns the progress of the downloaded file.

error

Text

If there was an error, returns the error. Else returns NULL

The file type in the URL must be the same type as the type on the file name. Downloaded files cannot be accessed outside of the app (e.g. device files, photo gallery, etc.).

Block: Get Downloaded Files

This block returns the list of files that you have already downloaded.

Advanced Block

Output
Data Type
Function

files

Text

Returns a list of file names and extensions for the downloaded files.

error

Text

If there was an error, returns the error. Else returns NULL

Block: Delete Downloaded File

This block deletes the file that you have downloaded from your local storage.

Advanced Block

Output
Data Type
Function

error

Text

If there was an error, returns the error. Else returns NULL

Block: Rename Downloaded File

This block renames a previously downloaded file from your local storage.

Advanced Block

Output
Data Type
Function

error

Text

If there was an error, returns the error. Else returns NULL

Describes the type of file in

Thunkable integrates with , a service that allows you to store media files in the cloud. The upload file block allows you to send media directly from your Thunkable app to a linked Cloudinary account.

Create a free Cloudinary account here: .

Click the Settings icon in the left side menu.

Input your Cloudinary Cloud Name, API Key, and API Secret.

To see some examples of the url from uploaded file block in action, check out this video tutorial: and the following screenshots.

🛠️
Cloudinary
cloudinary.com
How to Create Data in a Thunkable Data Source
MIME format