如何从asp.net处理程序文件中打开新的浏览器窗口?

时间:2016-03-31 23:50:38

标签: c# asp.net

下面的代码在visual studio的调试中工作正常但是当我将它发布到IIS服务器时却无法正常工作。什么都没发生。我猜测一些安全问题。问题是System.Diagnostics.Process.Start是否有任何替代方法可以在新窗口或选项卡中打开网址?或者如何使Process.Strat在IIS中工作? 感谢

public void ProcessRequest(HttpContext context)
    {
        Context = context;
        if (context.Request.QueryString["path"] == null)
        {
            return;
        }
        string path = Context.Server.UrlDecode(Context.Request.QueryString["path"]);

        var item = DataServer.GetItem(path);
        if (item == null) return;

        System.Diagnostics.Process.Start(item["sourcePath"].ToString());
}

1 个答案:

答案 0 :(得分:1)

您的文件正在服务器端打开,这就是客户端什么也看不见的原因。如果您希望客户端打开文档,则需要创建响应,在响应中写入文件内容并指定mime类型(在ContentType属性中)。这样,客户端的浏览器将找出用于打开该文档的程序(例如ContentType" application / pdf"使用Acrobat打开," application / msword"随Microsoft打开Word等。)

请参阅:ASP.NET file download from serverhttp://www.sitepoint.com/web-foundations/mime-types-summary-list/