Boa tarde pessoal,
Desenvolvi uma aplicação para mvc que incorpora imagens no html, mas hoje infelizmente reparei num pequeno pormenor.
Estou utilizando o protocol base64 e funciona muito bem até aceder por ie8, este tem tamanho máximo de 32kb logo não me aparece a imagem.
Arranjei solução gravando a imagem em disco e depois na aplicação valido qual o browser que está a correr e mostro dependendo disso.
Exemplo:
<%if ((Request.Browser.Browser == "IE") && ((Request.Browser.MajorVersion < 8)))
{
if (Model.ThumbnailPhoto != null && Model.ThumbnailPhoto.Length > 0)
{
var base64 = Convert.ToBase64String(Model.ThumbnailPhoto);
var imgSrc = ../Images/ImagensAD/ImageAD.png; %> %>
<br />
<br />
<img style="width: 300px" src="<%: imgSrc %>" />
<% }
else
{ %>
<br />
<br />
<img src="../Images/ImagensAD/ImageAD.png" style="width: 200px; height: 200px" />
<% }
%>
<%}
else /**IE maior que 8*/
{
if (Model.JpegPhoto != null && Model.JpegPhoto.Length > 0)
{
var base64 = Convert.ToBase64String(Model.JpegPhoto);
var imgSrc = String.Format("data:image/jpg;base64,{0}", base64); %> %>
<br />
<br />
<img style="width: 300px" src="<%: imgSrc %>" />
<% }
else
{ %>
<br />
<br />
<img src="../Images/ImagensAD/ImageAD.png" style="width: 200px; height: 200px" />
<% }
} %>
Isto, obrigou-me a gravar em disco a imagem que é feita upload na aplicação por causa do ie8.
A minha questão é que não me acredito que o pessoal que tem uma imagem gravada em Base de Dados e que tenha mais de 32KB primeiro a grave para disco e depois a mostre em uma página web.
Alguma ideia ou argumento?
Obrigado.