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

# Fișiere

> Încărcați PDF-uri, imagini, videoclipuri și logouri pentru codurile QR.

> [!NOTE]
>
> API-ul GetQR este în versiune beta și este disponibil pentru anumite spații de lucru. Detaliile se pot schimba înainte de lansarea generală.

Codurile QR PDF, Image și Video indică un fișier, iar un logo personalizat este tot un fișier. Încărcarea are doi pași: înregistrați fișierul pentru a obține un URL, apoi trimiteți octeții la acel URL.

| Metodă | Cale | Descriere |
| - | - | - |
| `POST` | `/api/v1/files` | [Înregistrarea unei încărcări de fișier](#înregistrarea-unei-încărcări-de-fișier) |

## Încărcarea unui fișier

**1. Înregistrați fișierul**

Apelați [Înregistrarea unei încărcări de fișier](#înregistrarea-unei-încărcări-de-fișier) cu `target`, `contentType` și `size` ale fișierului. `target` stabilește tipurile de conținut acceptate și limita de dimensiune. Primiți un `fileId` și un `uploadUrl`.

**2. Trimiteți fișierul**

Trimiteți fișierul cu o cerere `PUT` la `uploadUrl`. `Content-Type` și `Content-Length` trebuie să corespundă exact cu `contentType` și `size` înregistrate: orice altceva este respins. URL-ul este presemnat, așa că nu adăugați cheia API. Expiră după 10 minute.

```bash theme={null}
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/pdf" \
  --data-binary @menu.pdf
```

**3. Folosiți ID-ul fișierului**

Transmiteți `fileId` când [creați un cod QR](https://docs.getqr.com/ro/api/endpoints/qr-codes.md):

* Ca `fileId` pentru un cod QR `pdf`, `image` sau `video`. Încărcați cu targetul corespunzător.
* Ca `fileId` pentru imaginea de profil a unui cod QR `vcard`, `social`, `multilink` sau `event`. Încărcați cu targetul `logo`.
* Ca `logoOptions.fileId`, cu `logoOptions.type` setat la `uploaded`, pentru un logo personalizat. Încărcați cu targetul `logo`. Consultați [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md).

## Limite

| `target` | Tipuri de conținut acceptate | Dimensiune maximă |
| - | - | - |
| `pdf` | `application/pdf` | 20 MB (20.971.520 de octeți) |
| `image` | `image/*` | 5 MB (5.242.880 de octeți) |
| `video` | `video/*` | 50 MB (52.428.800 de octeți) |
| `logo` | `image/*` | 5 MB (5.242.880 de octeți) |

* **Tip MIME simplu.** Trimiteți un singur tip și subtip, cu litere mici, cum ar fi `image/png`. Parametrii precum `;charset=` și listele sunt respinse.
* **Fără SVG.** Tipurile bazate pe XML, cum ar fi `image/svg+xml`, nu sunt acceptate. Încărcați o imagine raster, cum ar fi `image/png` sau `image/jpeg`.

## Anteturi

**Authorization** `string` *required*

`Bearer` urmat de cheia dvs. API. Consultați [Autentificare](https://docs.getqr.com/ro/api/authentication.md).

**Content-Type** `string` *required*

`application/json`.

## Înregistrarea unei încărcări de fișier

`POST /api/v1/files`

Înregistrează un fișier și returnează un URL presemnat la care să îl încărcați. Acest apel nu încarcă fișierul propriu-zis.

**target** `string` *required*

Pentru ce este fișierul: `pdf`, `image`, `video` sau `logo`. Stabilește tipurile de conținut acceptate și limita de dimensiune. Consultați [Limite](#limite).

**contentType** `string` *required*

Tipul MIME al fișierului, de exemplu `application/pdf`, fără parametri. Cererea de încărcare trebuie să trimită exact acest `Content-Type`.

**size** `integer` *required*

Dimensiunea exactă a fișierului în octeți, un număr întreg pozitiv. Este verificată în raport cu limita targetului. Cererea de încărcare trebuie să trimită exact acest `Content-Length`.

**name** `string`

Numele original al fișierului, până la 255 de caractere. Păstrat pentru afișare în panou. O cale cu `/` sau `\` este respinsă.

**fileId** `string`

ID-ul de transmis ca `fileId` sau `logoOptions.fileId`.

**uploadUrl** `string`

URL-ul presemnat la care trimiteți fișierul cu `PUT`.

**expiresIn** `integer`

Secundele până la expirarea `uploadUrl`: `600`.

**method** `string`

Metoda HTTP pentru încărcare: `PUT`.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/files" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "pdf",
    "contentType": "application/pdf",
    "size": 248000,
    "name": "menu.pdf"
  }'
```

```json 200 theme={null}
{
  "fileId": "file_7bQ2xR9mKp",
  "uploadUrl": "https://storage.getqr.com/qrs-content/pdf/file_7bQ2xR9mKp?X-Amz-...",
  "expiresIn": 600,
  "method": "PUT"
}
```

## Probleme frecvente

> [accordion] 422 "Content type … is not allowed for target"
>
> Tipul de conținut nu corespunde targetului. De exemplu, `pdf` acceptă doar `application/pdf`. Consultați [Limite](#limite).

> [accordion] 422 "must be a single lowercase type/subtype"
>
> Trimiteți tipul de conținut cu litere mici și fără parametri: `image/png`, nu `Image/PNG` sau `image/png; charset=utf-8`.

> [accordion] 422 "File is too large for target"
>
> `size` declarat depășește limita targetului. Comprimați fișierul înainte de a-l înregistra.

> [accordion] Încărcarea la uploadUrl eșuează
>
> URL-ul expiră la 10 minute după înregistrarea fișierului, iar cererea trebuie să trimită exact `Content-Type` și `Content-Length` înregistrate. Înregistrați din nou fișierul pentru a obține un URL nou.

> [accordion] 422 "is registered but its content was never uploaded" la crearea unui cod QR
>
> Ați înregistrat fișierul, dar `PUT` la `uploadUrl` nu s-a finalizat. Încărcați fișierul, apoi creați codul QR.

> [accordion] 422 "was uploaded to …" la crearea unui cod QR
>
> Fișierul a fost înregistrat cu alt target, de exemplu un fișier `image` folosit pentru un cod QR `pdf`. Înregistrați o încărcare nouă cu targetul corespunzător.

> [accordion] 404 "File … was not found" la crearea unui cod QR
>
> `fileId` nu există. Preluați-l din răspunsul de la [Înregistrarea unei încărcări de fișier](#înregistrarea-unei-încărcări-de-fișier).

## Ce urmează

> [card] [Coduri QR](https://docs.getqr.com/ro/api/endpoints/qr-codes.md)

> [card] [Tipuri de coduri QR](https://docs.getqr.com/ro/api/guides/qr-types.md)

> [card] [Personalizare](https://docs.getqr.com/ro/api/guides/customization.md)

> [card] [Erori](https://docs.getqr.com/ro/api/errors.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.