我正在为我工作的办公室的人力资源部门建立一个系统。这将是对我们开发的现有项目/员工管理应用程序的增强。有一些现有功能可以处理如下文档。这都是基于C#/ ASP.NET的。
//Check for document being available
if (ed.ContentType == null || ed.DocumentData == null)
{
Response.Redirect(Request.UrlReferrer.ToString());
}
else
{
strExtenstion = ed.ContentType.ToString();
strFilename = ed.Filename.ToString();
docData = ed.DocumentData;
byte[] bytFile = (byte[])docData.ToArray();
Response.Clear();
Response.Buffer = true;
if (strExtenstion == ".doc")
{
Response.ContentType = "application/vnd.ms-word";
}
else if (strExtenstion == ".docx")
{
Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
}
else if (strExtenstion == ".pdf")
{
Response.ContentType = "application/pdf";
}
Response.AddHeader("content-disposition", "attachment;filename=" + strFilename.ToString());
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.OutputStream.Write(bytFile, 0, bytFile.Length - 1); //Drop final byte to enable inclusion of MS Office 2007 types
Response.Flush();
Response.Close();
Response.End();
}
我们为每种类型的文件都有一个类,可以处理,如;新闻文档,费用文件,业务流程和我刚刚创建了一个将处理员工评估/评论的课程。我希望能够创建一个通用文档处理程序,不依赖根据查询字符串值调用类的实例来确定对象。我们只需使用查询字符串传入文档ID,以确定要公开的类方法。我的一个想法是省略对象标识查询字符串,但实际上传入二进制文档数据和mime类型,因此响应将告诉浏览器需要在客户端计算机上打开哪个应用程序。这是一个我应该指出的内部Intranet系统,我的经验非常有限,所以原谅任何愚蠢/不良的思维习惯。
我的问题是;
考虑通过查询字符串传递二进制数据是一个坏主意吗?
是否有更好的方法来构建一个通用文档句柄,该句柄将打开本地计算机上的相关应用程序(MS Office和PDF mime类型)?
由于