我正忙于编写处理程序来提供各种文档,以便在Web表单页面中下载或显示。这些文档的范围从各种图像格式,PDF,MS Office文档到通用二进制文件。我的下载过程基本草案如下:
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();
}
但是,我对将所有文档整合为application/octet-stream
有一些疑虑,如果可行,我希望每种文档类型使用更具体的内容类型。我有一个文件类型的数据库表,我可以存储它。我是否朝着正确的方向前进,如果是这样,我在哪里可以找到合适的文档类型内容类型的起始列表?
答案 0 :(得分:22)
application/octet-stream
适用于文件下载,但如果您希望浏览器与该文件进行交互,则可能需要更改内容类型。
例如,用于下载PDF文件的mime类型为application/octet-stream
,而application/pdf
将告诉浏览器在浏览器中打开该文件。