ExamplesBackendUpload Files

Upload Files

This example allows users to upload files and use them in the editor. The files are uploaded to /TMP/Files, and can be used for File, Image, Video, and Audio blocks.

Try it out: Click the "Add Image" button and see there's now an "Upload" tab in the toolbar!

Relevant Docs:

import "@blocknote/core/fonts/inter.css";import { useCreateBlockNote } from "@blocknote/react";import { BlockNoteView } from "@blocknote/mantine";import "@blocknote/mantine/style.css";// Uploads a file to tmpfiles.org and returns the URL to the uploaded file.async function uploadFile(file: File) {  const body = new FormData();  body.append("file", file);  const ret = await fetch("https://tmpfiles.org/api/v1/upload", {    method: "POST",    body: body,  });  return (await ret.json()).data.url.replace(    "tmpfiles.org/",    "tmpfiles.org/dl/",  );}export default function App() {  // Creates a new editor instance.  const editor = useCreateBlockNote({    initialContent: [      {        type: "paragraph",        content: "Welcome to this demo!",      },      {        type: "paragraph",        content: "Upload an image using the button below",      },      {        type: "image",      },      {        type: "paragraph",      },    ],    uploadFile,  });  // Renders the editor instance using a React component.  return <BlockNoteView editor={editor} />;}