Mam zapisywane obrazy w bazie danych. Obrazy i miniaturki zapisują się poprawnie jednak problem jest z ich wyświetleniem gdyż obrazki w ogóle się nie wyświetlają:/
Tutaj wyświetlam obrazki z wykorzystaniem Handlera:
AddNotice.aspx:
...
...
VehicleImage.ashx:
...
public class VehicleImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/pjpeg";
context.Response.BufferOutput = false;
context.Response.BinaryWrite(VehicleImagesManager.GetImage(
Convert.ToInt32(context.Request.QueryString["imageid"]),
Convert.ToInt32(context.Request.QueryString["thumbnail"]) == 1 ? false : true));
context.Response.BinaryWrite(VehicleImagesManager.GetImage(14,false));
context.Response.End();
}
public bool IsReusable
{ get { return false; }}
}
...
VehicleImagesManeger.cs:
...
public static byte[] GetImage(int imageId, bool fullImage)
{
using (SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["biurosqlConnectionString"].ConnectionString))
{
using (SqlCommand command = connection.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = String.Format(
@"SELECT {0} FROM ZDJECIE WHERE Id = @ImageId",
fullImage ? "[Image]" : "Thumbnail");
command.Parameters.Add("@ImageId", SqlDbType.Int).Value = imageId;
connection.Open();
return (byte[])command.ExecuteScalar();
}
}
}
...
Zgadza się. Przez przypadek to tutaj wkleiłem, normalnie mam to w komentarzu mam gdyż próbowałem cokolwiek wyświetlić wstawiając wartości na “sztywno”;p Handler w webconfigu:
Szczerz mówiąc matzu nie rozumiem tego kodu w Web.config’u:/ Namieszane tutaj jest coś
Generalnie to nie rozumiem Twojego rozwiązania tego problemu. Handlery działają tak, że w momencie, gdy następuje odwołanie do jakiegoś konkretnego zasobu, w tym wypadku jest to plik o rozszerzeniu .ashx, a dokładnie plik VehicleImage.ashx to jego przetwarzaniem zajmuje się odpowiednia klasa Handlera, w tym wypadku jest to klasa VehicleImage.
Jedynym wyjaśnieniem tego, że w momencie, gdy na jakiejś innej stronie miałeś odwołanie do pliku VehicleImage.ashx i obrazek nie wyświetlał się prawidłowo wydawało się być to, że w konfiguracji serwera www jest błąd. Czyli po prostu serwer www nie wiedział, co zrobić z danym zasoboem.
Co do tego błędu, który Ci się pojawił po dodaniu nowego wpisu w konfiguracji to chciałem zapytać, czy masz tą klasę VehicleImage umieszczoną w jakiejś przestrzeni nazw i jak ogólnie wygląda początkowa deklaracja tego pliku, w którym masz tą klasę VehicleImage oraz jakiego serwera IIS używasz (wersja 7.0 czy starsza). No ale teraz to już nieważne.