Я использую ASP.net/C# и пытаюсь создать галерею изображений.Мои изображения хранятся в виде байтовых данных в базе данных, и я использую файл axd, например, getDocument.axd? AttachmentID = X, чтобы установить объект Image, который затем добавляется на страницу aspx при загрузке страницы.
В IE большинство изображений отображается на странице, однако некоторые изображения не отображаются, я получаю изображение красного цвета по умолчанию.Интересно, что когда я просматриваю свойства изображения, у него нет типа файла.Все файлы, которые я извлекаю - это файлы jpg.
Я надеюсь, что кто-то может помочь, потому что это настоящий скребок головы :)
Я должен отметить, что эта проблема не возникает в Firefox / Chrome и всеизображения отображаются правильно.
void IHttpHandler.ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["attid"] != null)
{
int attid = int.Parse(context.Request.QueryString["attid"]);
context.Response.Clear();
context.Response.AddHeader("Content-Length", att.AttachmentData.Length.ToString());
context.Response.ContentType = att.MimeType.MimeHeader;
//context.Response.CacheControl = "no-cache";
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + att.FileName.Replace(" ", "_") + "." + att.MimeType.FileExtension + ";");
context.Response.OutputStream.Write(att.AttachmentData, 0, att.AttachmentData.Length);
context.Response.End();
return;
}
}
Чтобы вызвать этот метод, я получаю список идентификаторов из БД и извлекаю соответствующие изображения, выполняя следующие действия:
foreach (int i in lstImages)
{
Image tempImage = new Image();
Panel pnl = new Panel();
tempImage.ImageUrl = "getDocument.axd?attid=" + i;
tempImage.Attributes.Add("onclick", "javascript:populateEditor(" + i + ");");
tempImage.Height = 100;
tempImage.Width = 100;
pnl.Controls.Add(tempImage);
divImages.Controls.Add(tempImage);
}
* РЕДАКТИРОВАТЬ * Мой коллега заметил, что некоторые из моих изображений имели странную информацию заголовка, содержащуюся в файле изображения.Мы подозреваем, что это может быть из фотошопа, сохраняющего файлы, поскольку все файлы, которые не были созданы от конкретного человека, кажутся нормально отображаемыми.