Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
¿Cómo cargo una imagen de una URL (que tiene un origen diferente) en un objeto de archivo?

Al principio pensé que debería ser tan fácil como:

 const img = document.createElement('img'); img.onload = () => { ... } img.onerror = () => { ... } img.src = url;

Pero luego resultó que necesito dibujarlo en un lienzo, luego toBlob() . Y no olvide agregar CORS y crossorigin="anonymous" a la etiqueta img . ¿No es un poco demasiado complicado? ¿Hay una mejor manera?

Para mostrarle la solución final (necesita encabezados CORS):

 function getFileFromURL(url) { return new Promise((resolve, reject) => { const fileName = url.split('/').pop(); const img = document.createElement('img'); img.setAttribute('crossorigin', 'anonymous'); img.onload = () => { const canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; const ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); canvas.toBlob(blob => { resolve(new File([blob], fileName)); }); }; img.onerror = () => { reject('something went wrong'); }; img.src = url; }) }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Podría decirse que la solución sugerida por CBroe es mejor:

 function getFileFromURL(url) { const fileName = url.split('/').pop(); return fetch(url) .then(response => { return new File([response.data], fileName); }); }

Asegúrese de agregar encabezados CORS a las solicitudes.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda