accept: attributo HTML

L'attributo accept prende come valore un elenco separato da virgole di uno o più tipi di file che descrivono quali tipi di file consentire.

La proprietà accept è un attributo dell'elemento <input type="file">. Era supportato sull'elemento <form>, ma è stato rimosso a favore di <input type="file"> in HTML5.

Poiché un determinato tipo di file può essere identificato in più di un modo, è utile fornire un set completo di identificatori di tipo quando sono necessari file di tipo specifico o utilizzare il carattere jolly per indicare che un tipo di qualsiasi formato è accettabile.

Ad esempio, ci sono diversi modi in cui è possibile identificare i file di Microsoft Word, quindi un sito che accetta file di Word potrebbe utilizzare un <input> simile:

<input type="file" id="docpicker"
  accept=".doc,.docx,application/msword,application/vnd.openxmlformats-
  officedocument.wordprocessingml.document">

Considerando che se stai accettando un file multimediale, potresti voler includere qualsiasi formato di quel tipo di media:

<input type="file" id="soundFile" accept="audio/*">
<input type="file" id="videoFile" accept="video/*">
<input type="file" id="imageFile" accept="image/*">

L'attributo accept non convalida i tipi dei file selezionati; fornisce suggerimenti ai browser per guidare gli utenti verso la selezione dei tipi di file corretti. È ancora possibile (nella maggior parte dei casi) per gli utenti attivare o disattivare un'opzione nel selettore di file che consente di ignorarla e selezionare qualsiasi file desideri, quindi scegliere tipi di file errati.

Per questo motivo, dovresti assicurarti che il requisito previsto sia convalidato lato server.

Esempi

Quando è impostato su un tipo di input di file, il selettore file nativo che si apre dovrebbe abilitare solo la selezione di file del tipo di file corretto. La maggior parte dei sistemi operativi alleggerisce i file che non corrispondono ai criteri e non sono selezionabili.

<p>
<label for="soundFile"></label>
  <input type="file" id="soundFile" accept="audio/*">
</p>
<p>
<label for="videoFile"></label>
  <input type="file" id="videoFile" accept="video/*">
</p>
<p>
<label for="imageFile"></label>
  <input type="file" id="imageFile" accept="image/*">
</p>

Identificatori univoci del tipo di file

Un identificatore di tipo di file univoco è una stringa che descrive un tipo di file che può essere selezionato dall'utente in un elemento <input type="file">. Ciascun identificatore di tipo di file univoco può assumere una delle seguenti forme:

  • Un'estensione del nome file valida senza distinzione tra maiuscole e minuscole, che inizia con un punto ("."). Ad esempio: .jpg, .pdf, o .doc.
  • Una stringa di tipo MIME valida, senza estensioni.
  • La stringa audio/* che significa "qualsiasi file audio".
  • La stringa video/* che significa "qualsiasi file video".
  • La stringa image/* che significa "qualsiasi file immagine".

L'attributo accept assume come valore una stringa contenente uno o più di questi identificatori di tipo di file univoci, separati da virgole. Ad esempio, un selettore di file che necessita di contenuto che può essere presentato come un'immagine, inclusi formati di immagine standard e file PDF, potrebbe avere il seguente aspetto:

<input type="file" accept="image/*,.pdf">