469,626 Members | 997 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,626 developers. It's quick & easy.

Save Image

Is there a way I can have a button on a ASP.NET form that when clicked will
allow the user to save the image to a file on the client side? I know that
the user can simply rclick the image and select Save Target as..., but the
button might be a more intuitive way.
Nov 18 '05 #1
4 2549
You could make the button do a response.redirect("insert path to image
here")

Michael

"David W. Simmonds" <da***@simmonds.ca> wrote in message
news:PzhQb.244902$X%5.43959@pd7tw2no...
Is there a way I can have a button on a ASP.NET form that when clicked will allow the user to save the image to a file on the client side? I know that
the user can simply rclick the image and select Save Target as..., but the
button might be a more intuitive way.

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.564 / Virus Database: 356 - Release Date: 1/19/2004
Nov 18 '05 #2
That just brings up another instance of the image in the window. It does not
prompt the user to save it. Does anyone know how I might do this or am I
stuck with the standard method of having the user rclick the image and
select from the menu?

"Michael Pearson" <mi************************@televox.com> wrote in message
news:uV*************@TK2MSFTNGP12.phx.gbl...
You could make the button do a response.redirect("insert path to image
here")

Michael

"David W. Simmonds" <da***@simmonds.ca> wrote in message
news:PzhQb.244902$X%5.43959@pd7tw2no...
Is there a way I can have a button on a ASP.NET form that when clicked

will
allow the user to save the image to a file on the client side? I know that the user can simply rclick the image and select Save Target as..., but the button might be a more intuitive way.

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.564 / Virus Database: 356 - Release Date: 1/19/2004

Nov 18 '05 #3
Hi David,
Thanks for posting in the community! My name is Steven, and I'll be
assisting you on this issue.
From your description, you'd like to let the user manually click a button
to download a certain image file. Just like they use the "save as" menu in
the IE's content menu ,yes?
If there is anything I misunderstood, please feel free to let me know.

As for this problem, I think we can implement this by setting the page's
Response object's "ContentType" and Header member. First we set the
Response.ContentType as "Image/GIF" or "Image/JPEG" to specify the response
stream as a image. Then, add a Header item into the response using the
Response.AddHeader method to streaming the image as an attachment to the
browser , then in the client the browser will popup a dialog to let the
user choose open or save the certain file. For example:

Response.ContentType = "Image/GIF";
Response.AddHeader( "Content-Disposition",
"attachment;filename=\"Microsoft.gif\"" );
Response.WriteFile("Microsoft.gif"); // write the file to the response
stream

Also, here is an sample page, you may have a try on it:
-----------------------aspx page-----------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Download</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<table width="500" align="center">
<tr>
<td><FONT face="">
<asp:Label id="lblMessage" runat="server" Text="Click the button to
download the image!"></asp:Label></FONT></td>
</tr>
<tr>
<td>
<asp:Button id="btnDownload" runat="server"
Text="Download"></asp:Button></td>
</tr>
</table>
</form>
</body>
</HTML>
-----------------------code behind page class----------------------

public class Download : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnDownload;
protected System.Web.UI.WebControls.Label lblMessage;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnDownload.Click += new
System.EventHandler(this.btnDownload_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void btnDownload_Click(object sender, System.EventArgs e)
{
Response.ClearHeaders();
Response.ClearContent();
Response.Clear();
Response.ContentType = "Image/GIF";

Response.AddHeader("Content-Disposition","attachment;filename=\"MS.gif\"");
Response.WriteFile(Server.MapPath("MS.gif"));
Response.End();
}
}

If you have any further questions, please feel free to post here.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Nov 18 '05 #4
That works great. Thanks.

"Steven Cheng[MSFT]" <v-******@online.microsoft.com> wrote in message
news:AM**************@cpmsftngxa07.phx.gbl...
Hi David,
Thanks for posting in the community! My name is Steven, and I'll be
assisting you on this issue.
From your description, you'd like to let the user manually click a button
to download a certain image file. Just like they use the "save as" menu in
the IE's content menu ,yes?
If there is anything I misunderstood, please feel free to let me know.

As for this problem, I think we can implement this by setting the page's
Response object's "ContentType" and Header member. First we set the
Response.ContentType as "Image/GIF" or "Image/JPEG" to specify the response stream as a image. Then, add a Header item into the response using the
Response.AddHeader method to streaming the image as an attachment to the
browser , then in the client the browser will popup a dialog to let the
user choose open or save the certain file. For example:

Response.ContentType = "Image/GIF";
Response.AddHeader( "Content-Disposition",
"attachment;filename=\"Microsoft.gif\"" );
Response.WriteFile("Microsoft.gif"); // write the file to the response
stream

Also, here is an sample page, you may have a try on it:
-----------------------aspx page-----------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Download</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<table width="500" align="center">
<tr>
<td><FONT face="">
<asp:Label id="lblMessage" runat="server" Text="Click the button to
download the image!"></asp:Label></FONT></td>
</tr>
<tr>
<td>
<asp:Button id="btnDownload" runat="server"
Text="Download"></asp:Button></td>
</tr>
</table>
</form>
</body>
</HTML>
-----------------------code behind page class----------------------

public class Download : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnDownload;
protected System.Web.UI.WebControls.Label lblMessage;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnDownload.Click += new
System.EventHandler(this.btnDownload_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void btnDownload_Click(object sender, System.EventArgs e)
{
Response.ClearHeaders();
Response.ClearContent();
Response.Clear();
Response.ContentType = "Image/GIF";

Response.AddHeader("Content-Disposition","attachment;filename=\"MS.gif\""); Response.WriteFile(Server.MapPath("MS.gif"));
Response.End();
}
}

If you have any further questions, please feel free to post here.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


Nov 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by George | last post: by
9 posts views Thread by Mark Johnson | last post: by
1 post views Thread by Sam Jost | last post: by
1 post views Thread by Hardy Wang | last post: by
2 posts views Thread by Ada | last post: by
1 post views Thread by liuliuliu | last post: by
1 post views Thread by Stedak | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.