如何在C#中单击按钮下载图像?

如何在C#中单击按钮下载图像?,c#,asp.net,download,C#,Asp.net,Download,有没有办法下载用户上传的图像?我有以下几点:首先,用户单击马赛克中的图像以查看其细节;然后在asp:image标记中生成图像,在该步骤中,他们应该通过单击按钮下载图像。我遇到的问题是,图像是在asp:image标记中生成的,而不是具有名称的实际图像本身。我必须下载的代码只获取存储在文件夹中的图像。代码如下: protected void btnDownload_Click(object sender, EventArgs e) { string path = @"C:\inetpub\w

有没有办法下载用户上传的图像?我有以下几点:首先,用户单击马赛克中的图像以查看其细节;然后在asp:image标记中生成图像,在该步骤中,他们应该通过单击按钮下载图像。我遇到的问题是,图像是在asp:image标记中生成的,而不是具有名称的实际图像本身。我必须下载的代码只获取存储在文件夹中的图像。代码如下:

protected void btnDownload_Click(object sender, EventArgs e)
{
    string path = @"C:\inetpub\wwwroot\PSCSearchEngine\MemberPages\Images\live.jpg";        
    System.IO.FileInfo file = new System.IO.FileInfo(path);
    if (file.Exists)
    {
        Response.Clear();
        Response.ContentType = MimeType(Path.GetExtension(path));
        Response.AddHeader("Content-Disposition", 
            string.Format("attachment; filename = {0}",
            System.IO.Path.GetFileName(path)));
        Response.AddHeader("Content-Length", file.Length.ToString("F0"));
        Response.TransmitFile(path);
        Response.End();
    }
    else
    {
        Response.Write("This file does not exist.");
    } 
}
下面是预览图像的代码:

@"~/MemberPages/UpdatePhoto.aspx?SiteKey=" + foo.Site_ID 
    + "&TimeStamp=" + foo.timestamp[n1 - 1];

在C中单击按钮下载图像文件的代码#

你可以试试这个:

using (var client = new System.Net.WebClient())
{
    var _imagebytes = client.DownloadData(string.Format(@"~/MemberPages/UpdatePhoto.aspx?SiteKey={0}&TimeStamp={1}", foo.Site_ID, foo.timestamp[n1 - 1]));
    Response.Clear();
    Response.ContentType = "image/jpg";
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", "MyImage.jpg"));
    Response.AddHeader("Content-Length", _imagebytes.Length.ToString("F0"));
    Response.OutputStream.Write(_imagebytes, 0, _imagebytes.Length);
    Response.End();
}

您可以在服务器上使用一些缓存来保存具有会话级标识的映像。当然,它必须是动态的,用户可以返回马赛克并下载另一个映像。谢谢。然后在数据库中创建一个表来存储用户选择的图像以及用户可以使用的图像。
using (var client = new System.Net.WebClient())
{
    var _imagebytes = client.DownloadData(string.Format(@"~/MemberPages/UpdatePhoto.aspx?SiteKey={0}&TimeStamp={1}", foo.Site_ID, foo.timestamp[n1 - 1]));
    Response.Clear();
    Response.ContentType = "image/jpg";
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", "MyImage.jpg"));
    Response.AddHeader("Content-Length", _imagebytes.Length.ToString("F0"));
    Response.OutputStream.Write(_imagebytes, 0, _imagebytes.Length);
    Response.End();
}