> For the complete documentation index, see [llms.txt](https://docs.opencityitalia.it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.opencityitalia.it/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/inserire-allegati-il-file-sdc.md).

# Inserire allegati: il File SDC

Per chiedere all'utente l'inserimento di uno o più allegati, trascina nel modulo il componente "File Sdc".

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F0sYYLwWEfmtseYBd5lg4%2Ffile%20sdc.gif?alt=media&amp;token=dd2dcb36-5292-492c-a8ab-47f5c149d8b3" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Attualmente i tipi di allegato permessi sono: doc, docx, odt, pdf, xls, xlsx, ods, ppt, pptx, odp, csv, xml, rtf, abw, txt, jpeg, jpg, png, apng, webp, ico, gif, p7, p7m, xp7m, p7c, zip.

Di questi formati viene controllata sia l'estensione sia il MIME type.

La dimensione massima prevista è di **10 MB** e si applica **sia agli allegati protocollati sia a quelli non protocollati**.
{% endhint %}

Nella sezione "Display" in "Description" aggiungi un testo che aiuti l'utente a capire che cosa può caricare, come ad esempio:

> **Attenzione:** puoi caricare solo file JPEG, JPG, PNG, PDF e P7M.\
> La dimensione massima è di **10 MB**.

Nella sezione "File" del componente, puoi:

* richiedere la protocollazione dell'allegato (1);
* indicare il formato (2);\
  Puoi inserire la tipologia di file ammessi, ad esempio:\
  `**.jpeg,.jpg,.png,.pdf,.p7m`
* indicare le dimensioni previste (3).

## Formati non supportati e alternative

Alcuni formati di uso comune non rientrano tra quelli supportati. In questi casi, chiedi al cittadino di raccogliere i file in un archivio **.zip** prima di allegarlo.

Un esempio frequente sono i **file shapefile** (`.shp`, `.shx`, `.dbf` e file correlati): non sono supportati singolarmente, ma possono essere caricati senza problemi se compressi in un archivio `.zip`.

{% hint style="info" %}
Se ricevi segnalazioni di errore su un formato specifico, verifica che rientri nell'elenco dei formati supportati. In caso contrario, il workaround consigliato è sempre la compressione in `.zip`.
{% endhint %}

## Come funziona l'upload?

Quando un utente carica un file, il componente compie tre passi in sequenza:

{% stepper %}
{% step %}

### 1. Registra il file

Il componente comunica al server il nome e il tipo del file e riceve successivamente un identificativo univoco.
{% endstep %}

{% step %}

### 2. Invia il contenuto

Il componente trasmette il file vero e proprio.
{% endstep %}

{% step %}

### 3. Conferma il caricamento

Il componente segnala al server che il file è arrivato correttamente.
{% endstep %}
{% endstepper %}

### Lingua automatica nelle chiamate al server

Il componente rileva automaticamente la lingua attiva del modulo e successivamente utilizza la nelle chiamate API. Ad esempio, se il modulo è in tedesco, le chiamate useranno `/de/upload` invece di `/it/upload`.

La lingua viene scelta in questo ordine:

1. La lingua impostata nel form.
2. La lingua definita nelle opzioni di avvio del form.
3. La lingua dichiarata nella pagina HTML.
4. L'italiano (`it`) come valore di riserva.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.opencityitalia.it/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/inserire-allegati-il-file-sdc.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
