473,480 Members | 1,874 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

How to call an aspx that accepts parameters through HTTP POST and returns an image, and then display the image in my html?

Hi Everyone,

I run into a problem. I am trying to write an aspx that can
dynamically generate an image based on some input parameters.

Things are very simple if the size of the parameters is small and I
can put them on the URL and pass them in as HTTP GET. In my image
generation script I just need to read the parameters and then pump out
the right MIME type and the right image byte stream. It is also very
easy to use:

<img source="image_gen.aspx?p1=...."will do the trick.
However, it looks like I need to pass in more parameters than HTTP GET
can support. I am thinking about HTTP POST. I think I can still write
the image generation script the same way, but the question now is how
to call the script and display the image in my html.
<img source="image_gen.aspx" and HTTP POST to this URLHow?

Does anyone know?

Thanks,
computer_guy

Jul 20 '07 #1
3 3595
You could use a control that inherits from IHttpHandler like this:

<%@ WebHandler Language="C#"
Class="AspNet.StarterKits.Classifieds.Web.PhotoDis play" %>

using System;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web;
using AspNet.StarterKits.Classifieds.BusinessLogicLayer;
namespace Mynamespace
{
public class PhotoDisplay : IHttpHandler
{
public const string QueryStringFullSize = "full";
public const string QueryStringMediumLarge = "large";
public const string QueryStringMediumSize = "medium";
public const string QueryStringMediumSmall = "small";
public void ProcessRequest(HttpContext context)
{

HttpResponse Response = context.Response;
HttpRequest Request = context.Request;
Image myThumbnail = new Bitmap(1,1);

//string url2 = Path.Combine(@"c:\attachments", "110.jpg");
if (Request.QueryString["photoid"] != null)
{
// Retrieve the path to the file.
string url2 =
GetPicturePath(Request.QueryString["photoid"],context);
if (url2.Length 0)
{

Image.GetThumbnailImageAbort myCallback = new
Image.GetThumbnailImageAbort(ThumbnailCallback);
Image fullImg = Image.FromFile(url2);
if (Request.QueryString["size"] ==
QueryStringMediumSmall)
myThumbnail = fullImg.GetThumbnailImage(100, 100,
myCallback, IntPtr.Zero);
if (Request.QueryString["size"] == QueryStringMediumSize)
myThumbnail = fullImg.GetThumbnailImage(200, 200,
myCallback, IntPtr.Zero);
if (Request.QueryString["size"] == QueryStringMediumLarge)
myThumbnail = fullImg.GetThumbnailImage(300, 300,
myCallback, IntPtr.Zero);
if (Request.QueryString["size"] == QueryStringFullSize)
myThumbnail = fullImg;

// make a memory stream to work with the image bytes
MemoryStream imageStream = new MemoryStream();

// put the image into the memory stream
myThumbnail.Save(imageStream, ImageFormat.Jpeg);

// make byte array the same size as the image
byte[] imageContent = new Byte[imageStream.Length];

// rewind the memory stream
imageStream.Position = 0;

// load the byte array with the image
imageStream.Read(imageContent, 0,
(int)imageStream.Length);

//byte[] allBytes = File.ReadAllBytes(url2);
Response.ContentType = "image/jpeg";
Response.Cache.SetCacheability(HttpCacheability.Pu blic);
Response.BufferOutput = false;
Response.OutputStream.Write(imageContent, 0,
imageContent.Length);
}

}
//e.Graphics.DrawImage(myThumbnail, 150, 75);

}
public bool ThumbnailCallback()
{
return false;
}

public bool IsReusable
{
get
{
return true;
}
}

}
}

Then call the control like this:
<img id="ss_img" src="PhotoDisplay.ashx?photoid=KeyForImage&amp;siz e=large"
alt="My Image" width="230" />

Just for the photoid be sure and pass something in that indicates what photo
you want. If you are generating the image at runtime - perhaps you can use
more than one parameter that can indicate Width, Height, content, etc...

-Brian

"computer_guy" <zy*******@gmail.comwrote in message
news:11*********************@r34g2000hsd.googlegro ups.com...
Hi Everyone,

I run into a problem. I am trying to write an aspx that can
dynamically generate an image based on some input parameters.

Things are very simple if the size of the parameters is small and I
can put them on the URL and pass them in as HTTP GET. In my image
generation script I just need to read the parameters and then pump out
the right MIME type and the right image byte stream. It is also very
easy to use:

<img source="image_gen.aspx?p1=...."will do the trick.
However, it looks like I need to pass in more parameters than HTTP GET
can support. I am thinking about HTTP POST. I think I can still write
the image generation script the same way, but the question now is how
to call the script and display the image in my html.
<img source="image_gen.aspx" and HTTP POST to this URLHow?

Does anyone know?

Thanks,
computer_guy
Jul 20 '07 #2
FYI - the class file should have an ".ashx" extension.

"computer_guy" <zy*******@gmail.comwrote in message
news:11*********************@r34g2000hsd.googlegro ups.com...
Hi Everyone,

I run into a problem. I am trying to write an aspx that can
dynamically generate an image based on some input parameters.

Things are very simple if the size of the parameters is small and I
can put them on the URL and pass them in as HTTP GET. In my image
generation script I just need to read the parameters and then pump out
the right MIME type and the right image byte stream. It is also very
easy to use:

<img source="image_gen.aspx?p1=...."will do the trick.
However, it looks like I need to pass in more parameters than HTTP GET
can support. I am thinking about HTTP POST. I think I can still write
the image generation script the same way, but the question now is how
to call the script and display the image in my html.
<img source="image_gen.aspx" and HTTP POST to this URLHow?

Does anyone know?

Thanks,
computer_guy
Jul 20 '07 #3
Thanks a lot for your help.

The problem is that the url is too short to specify all the
parameters. It is more like the following:

<img id="ss_img" src="PhotoDisplay.ashx?data=<Large Block of Data Here
(~ 32 KB) />

The reason I am doing this is because the data used to parameterize
the image is generated on the fly. Eventually I want something like
this:

Dynamic HTML Page
-------------------------------

1. Complicated algorithm to generate data and store it in memory

2. Inline Image to visualize generated data in graphic form.
(This is something I am hoping I can generate on the fly with another
script.)

3. HTML table to visualize generated data in tabluar form.

------------------End of HTML Page------------------

The problem here is that I don't want to call or write the algorithm
(1 above) twice when displaying it in graphic and tabular form.

So if I want to pass a large block of data to PhotoDisplay.ashx below
through HTTP POST, can I do it?

<img id="ss_img" src="PhotoDisplay.ashx?data=<Large Block of Data Here
(~ 32 KB) />

Thanks a lot,
computer_guy

On Jul 19, 9:38 pm, "Brian" <brianpatter...@ishcm.comwrote:
FYI - the class file should have an ".ashx" extension.

"computer_guy" <zyzhu2...@gmail.comwrote in message

news:11*********************@r34g2000hsd.googlegro ups.com...
Hi Everyone,
I run into a problem. I am trying to write an aspx that can
dynamically generate an image based on some input parameters.
Things are very simple if the size of the parameters is small and I
can put them on the URL and pass them in as HTTP GET. In my image
generation script I just need to read the parameters and then pump out
the right MIME type and the right image byte stream. It is also very
easy to use:
<img source="image_gen.aspx?p1=...."will do the trick.
However, it looks like I need to pass in more parameters than HTTP GET
can support. I am thinking about HTTP POST. I think I can still write
the image generation script the same way, but the question now is how
to call the script and display the image in my html.
<img source="image_gen.aspx" and HTTP POST to this URLHow?
Does anyone know?
Thanks,
computer_guy- Hide quoted text -

- Show quoted text -

Jul 20 '07 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
6678
by: Nashat Wanly | last post by:
HOW TO: Call a Parameterized Stored Procedure by Using ADO.NET and Visual C# .NET View products that this article applies to. This article was previously published under Q310070 For a Microsoft...
7
4956
by: Danny | last post by:
Newbie here Thanks for the help with this command: print "Status: 204 No Content\n\n"; which returns nothing in a perl script. This is great because I just want my perl script to increment a...
8
2565
by: Peter Nolan | last post by:
Hi All, I have written some software that performs ETL processing to load data warehouses. Each program accepts a set of parameters and returns 0 or 1 to the win/unix shell to indicate success or...
1
2080
by: Adam | last post by:
I am having difficulty retrieving images from a SQL database. Here is the code I use to UPLOAD the image to the database: <form id="Form1" method="post" enctype="multipart/form-data"...
10
2322
by: Adis | last post by:
Asp.Net Visual Studio 2003 SQL Server. Hi, Obtaining Data Based Upon Multiple Selections From a ListBox... I have database in Sqlserver and ListBox (Multiple Selection Mode) in my Visual...
6
5474
by: Paolo Pignatelli | last post by:
I have an aspx code behind page that goes something like this in the HTML view: <asp:HyperLink id=HyperLink1 runat="server" NavigateUrl='<%#"mailto:" &amp;...
0
1964
by: guddi1 | last post by:
Hi, I am looking to figure out how to display parameters of a post request. I am working in visual C++ environment. I have a program that tracks and outputs URL activity. For instance, when I log...
4
3832
by: Ty | last post by:
Hello all, I am creating a web site with Visual Stuido 2008. I am trying to use a java script file to create a busybox for login from this page http://blogs.crsw.com/mark/articles/642.aspx. I...
11
2908
by: =?Utf-8?B?UGV0ZXIgSw==?= | last post by:
I am working with Visual Studio or alternately with Expression Web. I need to create about 50 aspx pages with about 1200 thumbnali images, typically arranged in three to four groups per page,...
0
7046
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
6908
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7048
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7088
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
5342
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
4783
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4485
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
2997
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
183
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.