La risposta a questa domanda è probabilmente più correlata al caricamento HTML rispetto ai binari.
Quando si desidera caricare un file, in genere si digita un input con type = "file".
Questo può essere fatto in Rails utilizzando il file_field_tag helper. Genererà un input con type = "file" che può anche avere un attributo per l'attributo, ma non è possibile utilizzarlo perché non avrà alcun effetto visibile. Questo attributo accetta i tipi MIME, non le estensioni e la maggior parte dei browser nemmeno lo usa.
La cosa migliore che si può fare è probabilmente avere un javascript controllare l'estensione del file prima del caricamento (dopo aver selezionato il file dalla finestra di dialogo). Leggi di più a riguardo in this question.
Il punto è, non è possibile forzare il sistema operativo per mostrare solo le estensioni di file che si desidera. È possibile convalidare l'estensione utilizzando JS per esempio, prima di caricare o controllare il contenuto del file dopo il caricamento, lato server
fonte
2011-01-13 14:15:08
L'utilizzo di Javascript non è una buona idea perché può essere facilmente aggirato. Meglio andare con la convalida sul lato server, ad es. come supportato da Paperclip. –
Non sto raccomandando l'uso di javascript per la convalida, ma solo come formalità (voglio dire ... perché consentire a qualcuno di caricare un'immagine con un'estensione errata). Se l'utente carica un file, anche con l'estensione richiesta, è ovviamente necessario controllarlo dal lato server. ma non è questo il problema qui. la domanda era se può essere convalidato prima del caricamento (probabilmente per risparmiare tempo per il caricamento di qualcosa che non è valido. almeno è così che lo vedo) –