2012-04-15 17 views
20

Con el objetivo de manipular más fácilmente varias imágenes en el lado del cliente con Javascript, escribí una función en el servidor (en VB 2010) para convertir un archivo en una cadena base64 que envío al cliente.Pantalla de imagen de Internet Explorer y Base64

Cuando lo probé en Internet Explorer 8.0 con 3 imágenes diferentes, 1 retrato y 2 paisajes, me di cuenta de que solo se mostraba la imagen de retrato por completo, mientras ambas imágenes de paisaje se truncaban (puedo ver solo la parte superior imagen).

Pensé que tenía un error en mi función de conversión, hasta que probé mi página local con Firefox: cada imagen se muestra perfectamente en Firefox.

Así que ahí está mi pregunta: ¿Es este un error conocido de Internet Explorer? Si la respuesta es sí, ¿existe un remedio bien conocido para ese conocido error?

+3

¿Enlace a la página de prueba? – Marcel

+3

Este es un error conocido, IE, tiene un límite de caracteres impuesto en todos los URI, lo que significa que los URI del esquema de datos tendrán algo de contenido truncado. –

+0

Además del comentario de Andrew Dunn, será mejor que use un sistema de archivos o una base de datos (como SQL 2008 que ha dedicado a servir imágenes). No creo que te acerques a la compresión de protocolos como jpg, gif, png. También he encontrado que usar un proveedor de ruta virtual para mostrar imágenes desde un dB es mucho más lento que un sistema de archivos, por lo que recomiendo reconsiderar su diseño. –

Respuesta

14

IE8 solo puede hacer imágenes URI Base64 de hasta 32kb de tamaño. Es una limitación marginalmente molesta, pero aún puede funcionar con iconos/etc. Tenga en cuenta que las imágenes codificadas con Base64 son, en promedio, un 33% más de datos enviados por la tubería de todos modos, por lo que es ... eh, ya sabe, use su criterio.

Para todos los interesados, también es posible realizar estos trabajos en IE6/7 (sin, por cierto, que el límite de 32kb ...): http://venodesigns.net/2010/06/17/you-got-your-base64-in-my-css/

+0

gracias por su respuesta. Bueno, ¿te refieres a que la codificación de base64 es inútil en mi caso? ¿Podría simplemente enviar la imagen jpeg como una cadena simple y declarar esa cadena como lo hago para base64, simplemente reemplazando "BB 'data: image/jpg; base64' y vista previa de la imagen jQuery en Internet Explorer

  • 3. Error de Internet Explorer 8 con pantalla: tabla
  • 4. Internet Explorer toDataURL() alternativa?
  • 5. cloneNode en Internet Explorer
  • 6. Internet Explorer 9 VHD
  • 7. addEventListener en Internet Explorer
  • 8. Internet Explorer 8 + Deflate
  • 9. Imagen de codificación Base64
  • 10. "Permiso denegado" con Internet Explorer y jQuery
  • 11. setTimeout Internet Explorer
  • 12. Internet Explorer innerHeight
  • 13. Depuración de sitios web en Internet Explorer
  • 14. desastre de compatibilidad de Internet Explorer
  • 15. Internet Explorer, Json.Net Fecha de JavaScript y cuestión de milisegundos
  • 16. Problema de rendimiento de Internet Explorer Javascript
  • 17. Manejo de gradientes CSS de Internet Explorer
  • 18. $ ('body'). Css ('overflow-y', 'auto') no funciona en Internet Explorer
  • 19. cara de fuente de Internet Explorer ssl
  • 20. Internet Explorer http referer problema
  • 21. Error de modo protegido de Internet Explorer
  • 22. mensaje() con Internet Explorer 8
  • 23. Internet Explorer ignorando mis cookies
  • 24. Internet Explorer Internet Failure Códigos de estado HTTP
  • 25. does internet explorer admite e.preventDefault
  • 26. Sombra de texto en Internet Explorer?
  • 27. Degradados en Internet Explorer 9
  • 28. Flot e Internet Explorer 9?
  • 29. caracteres Unicode e Internet Explorer
  • 30. Plugin NPAPI en Internet Explorer?