trouble displaying image stored in database

J

Jeff

hi

asp.net 2.0

I have a image (.jpeg) stored in sql server 2005 and now I want to display
it on a webpage.
So I created a webpage (Image.aspx) which just writes the buffer data to the
Response object.

On Default.aspx I use this Image.aspx for displaying the image, but no image
is displayed. All I see in the symbol saying the image couldn't be found...

Also I've placed breakpoint inside Page_Load of Image.aspx, but it wasn't
triggered. I set the breakpoint in a place where it should be triggered if
Page_load was executed.

Here is the markup in Default.aspx where I call the Image.aspx:
<img src="Image.aspx?imageId=2" />

any suggestions?
 
A

Alexey Smirnov

hi

asp.net 2.0

I have a image (.jpeg) stored in sql server 2005 and now I want to display
it on a webpage.
So I created a webpage (Image.aspx) which just writes the buffer data to the
Response object.

On Default.aspx I use this Image.aspx for displaying the image, but no image
is displayed. All I see in the symbol saying the image couldn't be found....

Also I've placed breakpoint inside Page_Load of Image.aspx, but it wasn't
triggered. I set the breakpoint in a place where it should be triggered if
Page_load was executed.

Here is the markup in Default.aspx where I call the Image.aspx:
<img src="Image.aspx?imageId=2" />

any suggestions?

Is image.aspx located in the same directory where default.aspx is
located?

What happens when you call your page directly as http://site/image.aspx?imageId=2

?
 
G

George

Your aproach should be working fine

Could it be a prblem with the path? I notice you refer to image as <img
src="Image.aspx?imageId=2" />
That means that Image.aspx and Defaul.aspx must be in the same folder. Is it
true?

PS: do not forget to set ContentType correctly in your Image.aspx.

George.
 
J

Jeff

yes, Default.aspx and image.aspx is in the same directory.

when I execute Image.aspx separately I get this error:
Server Error in '/myPhotos' Application.
--------------------------------------------------------------------------------
Using themed css files requires a header control on the page. (e.g. <head
runat="server" />).
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Using themed css files
requires a header control on the page. (e.g. <head runat="server" />).

Source Error:
An unhandled exception was generated during the execution of the current web
request. Information regarding the origin and location of the exception can
be identified using the exception stack trace below.

Stack Trace:
[InvalidOperationException: Using themed css files requires a header control
on the page. (e.g. <head runat="server" />).]
System.Web.UI.PageTheme.SetStyleSheet() +160
System.Web.UI.Page.OnInit(EventArgs e) +51
System.Web.UI.Control.InitRecursive(Control namingContainer) +459
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1727

This is the code in the Page_Load of Image.aspx:
public partial class Image : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PictureDetail pic;
int imageid = Convert.ToInt32(Request.QueryString["imageId"]);
pic = SiteProvider.Picture.getPicture(imageid);

Response.ContentType = "image/jpeg";
Response.BinaryWrite(pic.FileBytes);
}
}
}

this is the markup of image.aspx: (it contains no header or body)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Image.aspx.cs"
Inherits="Image" %>
 
A

Alexey Smirnov

yes, Default.aspx and image.aspx is in the same directory.

when I execute Image.aspx separately I get this error:
Server Error in '/myPhotos' Application.
--------------------------------------------------------------------------- -----
Using themed css files requires a header control on the page. (e.g. <head
runat="server" />).
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Using themed css files
requires a header control on the page. (e.g. <head runat="server" />).

Source Error:
An unhandled exception was generated during the execution of the current web
request. Information regarding the origin and location of the exception can
be identified using the exception stack trace below.

Stack Trace:
[InvalidOperationException: Using themed css files requires a header control
on the page. (e.g. <head runat="server" />).]
   System.Web.UI.PageTheme.SetStyleSheet() +160
   System.Web.UI.Page.OnInit(EventArgs e) +51
   System.Web.UI.Control.InitRecursive(Control namingContainer) +459
   System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1727

 This is the code in the Page_Load of Image.aspx:
public partial class Image : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            PictureDetail pic;
            int imageid = Convert.ToInt32(Request.QueryString["imageId"]);
            pic = SiteProvider.Picture.getPicture(imageid);

            Response.ContentType = "image/jpeg";
            Response.BinaryWrite(pic.FileBytes);
        }
    }

}

this is the markup of image.aspx: (it contains no header or body)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Image.aspx.cs"
Inherits="Image" %>

This is because you have defined in the web.config file the theme
option <page theme="SomeTheme" />. In this case the head runat=server
is required for all pages. If you need to define themes in config and
have pages without the head element, you need to define pages in a new
folder that has a separate web.config file without the use of the
theme.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top