无法在用户端下载文件夹中下载图像。我已经尝试了很多方法来解决这个问题。我还给出了用户的文件路径,并尝试下载asp:image control" url" ...整个代码已执行但未将图像保存在文件夹中。我尝试了更多解决方案,但没有工作。有任何建议可以帮助我... 我被困在了......提前谢谢你......
//To show image from URl on asp:image control on click of gridview button
protected void Redirect1_Click(object sender, EventArgs e)
{
var rowIndex = ((GridViewRow)((Control)sender).NamingContainer).RowIndex;
BookingNO = GridView1.Rows[rowIndex].Cells[0].Text;
var request = WebRequest.Create("http:-#-//?a=" + BookingNO + "&b=2" + "");
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
{
LoadImage.ImageUrl = "http:-#-//?a=" + BookingNO + "&b=2" + "";
LoadImage.Visible = true;
md.Visible = true;
LoadImage.ToolTip = "Image of Order Number. " + BookingNO + "";
Download.Visible = true;
}
}
//按钮点击下载图片
public void Download_click(object sender, EventArgs e)
{
try
{
string pathUser = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string pathDownload = Path.Combine(pathUser, "Downloads");
string url = LoadImage.ImageUrl;
byte[] data;
using (WebClient client = new WebClient())
{
data = client.DownloadData(url);
}
File.WriteAllBytes(pathDownload + BookingNO + ".jpg", data);
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Order Number " + BookingNO + " Image Saved');", true);
}
catch (Exception ex)
{
}
}
答案 0 :(得分:1)
您无法强制在客户端计算机上保存文件,并且绝对不能在特定文件夹中保存文件。您只能将文件移交给用户,让浏览器保存该文件或询问用户在何处以及是否保存文件。
顺便说一下,您的代码并没有下载单个图片,它最多可以设置图片控件的源位置。
如果要将图像写入输出流(当图像为字节数组时),则可以执行以下操作:
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"file.png\"");
HttpContext.Current.Response.OutputStream.Write(imageBytes, 0, imageBytes.Length);