По какой-то странной причине в пятилетнем внутреннем веб-приложении asp.net , используемом через IE6 , неожиданно возникла проблема, даже несмотря на то, что не было никаких изменений кода.Некоторые изображения, которые передаются обратно в веб-браузер, не отображаются для некоторых пользователей.
Я не знаю, почему это внезапно начало происходить или в чем причина - однако, как часть поиска, яЯ рассматриваю, есть ли недостаток в коде, используемом для потоковой передачи изображений.
Изображение хранится в памяти в виде байтового массива, а затем возвращается обратно с использованием следующего кода.Это лучший способ вернуть изображение обратно?
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
// Work out file type
switch( Path.GetExtension( imageFilename ).ToLower() )
{
case ".jpg":
case ".jpeg":
Response.ContentType = "image/jpeg";
break;
case ".gif":
Response.ContentType = "image/gif";
break;
default:
Response.ContentType = "binary/octet-stream";
break;
}
Response.AddHeader("Content-Length", imageBytes.Length.ToString() );
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite( imageBytes );
Response.End();
Вместо изображения, отображаемого на странице, отображается красный крест.Это происходит только с динамически сгенерированными изображениями, отображаемыми на странице, а не со статически связанными изображениями.
Если я пытаюсь открыть изображение в своем собственном окне, я либо вижу изображение, либо загружаем текст в виде пустякаТо, что я предполагаю, означает, что тип MIME не устанавливается / не принимается браузером)