# Uploads and versions

{/* AUTO-SYNCED SOURCE: this page lives in apps/app/src/modules/files/docs/ and is mirrored into the docs app by `bun sync:module-docs`. Edit it in the module, not in apps/docs. */}
<Lead>
Uploading works three ways, large files upload resumably in parts, and on a name clash the file store keeps the old state as a version. This page explains all the rules around uploads, versions and downloads.
</Lead>

## Three ways to upload

- **Button**: **Upload** (Hochladen) picks one or more files; next to it there is a separate button for whole folders.
- **Drag and drop**: drag files or complete folders including subfolders from your file manager onto the page. The folder structure is preserved.
- **Paste**: an image on the clipboard lands in the current folder with <Kbd>Cmd/Ctrl</Kbd> + <Kbd>V</Kbd>. Handy for screenshots.

## The upload panel

A panel at the bottom right shows the state of every file. You can collapse and expand it, clear the list and **cancel** queued uploads. For large files it shows exact progress and offers **Pause** (Pausieren) and **Resume** (Fortsetzen).

## Limits: 10 MB in one go, up to 2 GB in parts

- Files up to **10 MB** upload in a single step.
- Larger files up to **2 GB** upload automatically **in parts**, with exact progress. If the connection drops, you can pause the upload and later pick up exactly where it left off with **Resume**.
- More than 2 GB per file is not possible; the upload is rejected with a clear message.

## Safety: blocked types and authenticity checks

<Warning title="Executable files are rejected">
For safety, the file store does not accept executable files and scripts, for example .exe, .bat, .sh or .apk. Archives such as ZIP, 7z and RAR are allowed; they are part of everyday agent work.
</Warning>

In addition, the file store verifies every file by its **actual content** (authenticity check): whatever the browser claims about the type is ignored; the file is recognised by its real bytes. Unsafe SVG files and empty files are rejected. This check is always on and cannot be disabled.

## Same name: replace or number

What happens on a name conflict depends on who stores the file:

<DefinitionList>
  <DefItem term="You upload a file with the same name">
    The existing file is **replaced**, and the previous state is automatically kept as a **version**. No "(2)" copy is created. That way "Exposé Musterstraße.pdf" always stays exactly one file, with a history.
  </DefItem>
  <DefItem term="A tool or an import stores a file">
    The new entry gets the suffix **"(2)"**, **"(3)"** and so on. Nothing is overwritten.
  </DefItem>
  <DefItem term="Creating a folder or renaming collides">
    New folders also get a number on conflict. Renaming to a taken name shows the message "Hier gibt es bereits einen Eintrag mit diesem Namen." (There is already an entry with this name here.)
  </DefItem>
</DefinitionList>

## File history and restore

Every file keeps its **history** (Verlauf) in the details panel: up to **15 versions**, created automatically whenever the file is replaced. Clicking **Restore** (Wiederherstellen) makes an old state the current file again; the state it replaces stays in the history. When the version limit is reached, the oldest versions drop out.

<Tip title="Overwritten by accident?">
Nothing is lost: open the details panel, section **History**, and restore the version you want.
</Tip>

## Duplicate

**Duplicate** (Duplizieren) in the context menu creates a copy in the same folder. The copy counts towards storage; if there is not enough space, you see "Dein Speicherplatz reicht für eine Kopie nicht aus." (Your storage is not enough for a copy.)

## Download as ZIP

**As ZIP** (Als ZIP) packs a whole folder or a multi-selection into a single archive, folder structure preserved. Single files download directly via **Download**.

## Further reading

Where tool results and property files are sorted automatically is covered in [Folders and areas](/tools/dateien/ordner-und-bereiche). Back to the [overview](/tools/dateien).
