Asp.net 在通用处理程序中为文件提供服务时的内容类型
我正忙着编写一个处理程序来处理各种文档,以便在web表单页面中下载或演示。这些文档包括各种图像格式、PDF、MS Office文档和通用二进制文件。我的下载过程的基本草稿如下:Asp.net 在通用处理程序中为文件提供服务时的内容类型,asp.net,Asp.net,我正忙着编写一个处理程序来处理各种文档,以便在web表单页面中下载或演示。这些文档包括各种图像格式、PDF、MS Office文档和通用二进制文件。我的下载过程的基本草稿如下: public void ProcessRequest(HttpContext context) { var docUrl = context.Request["docUrl"]; if (string.IsNullOrEmpty(docUrl)) { context.Response.En
public void ProcessRequest(HttpContext context)
{
var docUrl = context.Request["docUrl"];
if (string.IsNullOrEmpty(docUrl)) {
context.Response.End();
return;
}
var docPath = context.Server.MapPath(docUrl);
var docInfo = new FileInfo(docPath);
context.Response.Clear();
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(docPath));
context.Response.AddHeader("Content-Length", docInfo.Length.ToString());
context.Response.ContentType = "application/octet-stream";
context.Response.WriteFile(docPath);
context.Response.End();
}
然而,对于将所有文档集中为应用程序/八位字节流,我有一些疑虑,如果可行的话,我更愿意为每个文档类型使用更具体的内容类型。我有一个用于文档类型的DB表,可以将其存储在其中。我走的方向是否正确?如果是,我在哪里可以找到适合文档类型的内容类型起始列表?应用程序/八位字节流适合文件下载,但如果您希望浏览器与文件交互,可能需要更改内容类型
例如,用于下载PDF文件的mime类型为application/octet stream,而application/PDF将通知浏览器在浏览器中打开该文件