gpt4 book ai didi

asp.net ashx 处理程序提示下载而不是显示文件

转载 作者:行者123 更新时间:2023-12-01 11:07:54 25 4
gpt4 key购买 nike

我在我的应用程序中实现了一个适用于图像的通用处理程序,但是当我在浏览器中使用图像的查询字符串手动键入处理程序 URL 时,它会提示下载而不是显示。这是我的代码:

public void ProcessRequest(HttpContext context)
{
if (this.FileName != null)
{
string path = Path.Combine(ConfigurationManager.UploadsDirectory, this.FileName);

if (File.Exists(path) == true)
{
FileStream file = new FileStream(path, FileMode.Open);
byte[] buffer = new byte[(int)file.Length];
file.Read(buffer, 0, (int)file.Length);
file.Close();
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("content-disposition", "attachment; filename=\"" + this.FileName + "\"");
context.Response.BinaryWrite(buffer);
context.Response.End();
}
}
}

我正在使用八位字节流,因为我处理的不仅仅是图像,而且我并不总是知道文件的内容类型。提前致谢!

最佳答案

唯一的方法是指定正确的 ContentType 以便浏览器知道如何处理接收文件,这取决于安装的插件(例如,在浏览器框架中查看 pdf 文件)和系统关联(例如,提供在 MS 中打开文档Office 而不是简单的下载)

您可以尝试根据文件扩展名指定内容类型,即:

if(Path.GetExtension(path) == ".jpg")
context.Response.ContentType = "image/jpeg";
else
context.Response.ContentType = "application/octet-stream";

关于asp.net ashx 处理程序提示下载而不是显示文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com