通过查询字符串传递二进制数据

时间:2012-07-26 07:52:21

标签: c# asp.net .net handler

我正在为我工​​作的办公室的人力资源部门建立一个系统。这将是对我们开发的现有项目/员工管理应用程序的增强。有一些现有功能可以处理如下文档。这都是基于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类型)?

由于

0 个答案:

没有答案