C# 单击图像链接时,如何向用户显示“保存文件”对话框?

C# 单击图像链接时,如何向用户显示“保存文件”对话框?,c#,asp.net,.net,gdi+,C#,Asp.net,.net,Gdi+,我做了一些环顾四周的工作,似乎问题的解决方案是更改文件的内容头,使其不被视为常规图像 这一切都很好,我试图编写一个图像处理程序来实现这一点。问题是我使用的图像有多种格式。我将使用jpg/png/tiff/eps 我的计划是使用位图类打开文件,然后使用以下命令保存到输出流: Bitmap bmap = new Bitmap(context.Server.MapPath(imagePath)); bmap.Save(context.Response.OutputStream, ImageFormat

我做了一些环顾四周的工作,似乎问题的解决方案是更改文件的内容头,使其不被视为常规图像

这一切都很好,我试图编写一个图像处理程序来实现这一点。问题是我使用的图像有多种格式。我将使用jpg/png/tiff/eps

我的计划是使用位图类打开文件,然后使用以下命令保存到输出流:

Bitmap bmap = new Bitmap(context.Server.MapPath(imagePath));
bmap.Save(context.Response.OutputStream, ImageFormat.<Format goes here>);

似乎已经成功了-谢谢你们的帮助

您听说过内容处置标题吗?它允许您告诉浏览器询问用户如何处理该文件,而不是尝试自行处理该文件。我不认为它是HTTP规范的一部分,但它是由IETF在下记录的


其中显示了如何添加所需的响应标题。

您听说过内容处置标题吗?它允许您告诉浏览器询问用户如何处理该文件,而不是尝试自行处理该文件。我不认为它是HTTP规范的一部分,但它是由IETF在下记录的


其中显示了如何添加所需的响应头。

我建议使用上下文中可用的WriteFile方法。响应后调用Flush,即:

Response.WriteFile(context.Server.MapPath(imagePath));
Response.Flush();

希望这有帮助。

我建议使用上下文中可用的WriteFile方法。响应后调用Flush,即:

Response.WriteFile(context.Server.MapPath(imagePath));
Response.Flush();

希望这能有所帮助。

没问题-如果我们的答案都不完整,最好回答您自己的问题,然后将其标记为答案(而不是在您的问题中发布解决方案!)是的,我尝试过这样做,但它说我必须等8小时-我明天会更新:-)没问题-如果我们的答案都不完整,回答你自己的问题,然后将其标记为答案(而不是在你的问题中发布解决方案!)可能是个好主意。是的,我尝试过这样做,但它说我必须等8个小时-我明天会更新:-)