Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

691
Visualizações
¿Cómo detectar el tipo de archivo mime en Rails en 2022?

¿Existe una forma integrada en Ruby/Rails para detectar el tipo MIME de un archivo dada su URL y no depender de su extensión?

Por ejemplo, digamos que hay un archivo de imagen en una URL externa que quiero obtener el tipo MIME de: https://www.example.com/images/file

El archivo no tiene extensión, pero supongamos que es un jpeg.

¿Cómo puedo verificar esto/obtener el tipo mime del archivo en Rails? Idealmente, me encantaría tener una forma de hacer esto con una funcionalidad integrada y no tener que depender de una gema de terceros.

He revisado esta pregunta.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No creo que valga la pena no usar una gema de terceros para esto. El espacio del problema está bien documentado y es estable, y la mayoría de las bibliotecas también lo están.

Pero si es necesario, se puede hacer sin una gema externa. Especialmente si va a limitarse a un pequeño subconjunto de tipos de archivos para "lista blanca". El patrón de "número mágico" para la mayoría de los archivos de imagen es bastante sencillo una vez que obtiene el archivo en su disco:

 image = File.new("filename.jpg","r") irb(main):006:0> image.read(10) => "\xFF\xD8\xFF\xE0\x00\x10JFIF"

Marcel, que vinculaste en tu referencia, al menos, puede ser una gran referencia para las secuencias de números mágicos que necesitarás:

 MAGIC = [ ['image/jpeg', [[0, "\377\330\377"]]], ['image/png', [[0, "\211PNG\r\n\032\n"]]], ['image/gif', [[0, 'GIF87a'], [0, 'GIF89a']]], ['image/tiff', [[0, "MM\000*"], [0, "II*\000"], [0, "MM\000+"]]], ['image/bmp', [[0, 'BM', [[26, "\001\000", [[28, "\000\000"], [28, "\001\000"], [28, "\004\000"], [28, "\b\000"], [28, "\020\000"], [28, "\030\000"], [28, " \000"]]]]]]], # ..... ]
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda