2013-02-15 48 views
0

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

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]; 
+0

您可以在服务器上使用某些缓存以保留具有会话级别标识的映像。 – Romoku 2013-02-15 17:00:31

+0

那么,它必须是动态的,用户可以返回马赛克并下载其他图像。谢谢。 – Jacman 2013-02-15 17:25:49

+0

然后在您的数据库中创建一个表格,以存储用户选择哪个图像以及哪些图像可供用户使用。 – Romoku 2013-02-15 17:41:51

回答

0

代码下载使用按钮的图像文件,单击C#

protected void btnDownload_Click(object sender, EventArgs e) 
{ 
    string filename=MapPath("birds.jpg"); 
    Response.ContentType = "image/JPEG"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + filename+ ""); 

    Response.TransmitFile(filename); 
    Response.End(); 
} 
0

使用Web客户端

using System; 
using System.Net; 

// ... 
    WebClient webClient = new WebClient(); 
    webClient.DownloadFile("http://orig14.deviantart.net/d7a5/f/2016/123/0/9/judy_and_nick_by_kuvshinov_ilya-da15pnt.jpg", "MyFile.jpg"); 
0

您可以试试这个:

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(); 
}