在iframe中打开任何扩展名的文件

时间:2011-10-29 13:58:02

标签: c# asp.net

我有一个Web应用程序,我需要在iframe中以标准格式打开任何文件,例如.doc / docx / .csv / .txt / .xls。我怎样才能做到这一点?我尝试使用下面的示例代码,但它没有打开iframe中的所有文件格式。我收到了一些XML错误。

var ext = GetExtension(fileName);
        switch (ext)
        {
            case "pdf":
                Response.ContentType = "Application/pdf";
                break;
            case "htm":
            case "html":
                Response.ContentType = "text/html";
                break;
            case "txt":
                Response.ContentType = "text/plain";
                break;
            case "doc":
                Response.ContentType = "Application/vnd.ms-word";
                break;
            case "xls":
            case "csv":
                Response.ContentType = "Application/vnd.ms-excel";
                break;
            case "ppt":
            case "pps":
                Response.ContentType = "Application/vnd.ms-powerpoint";
                break;
            default:
                Response.ContentType = "Application/unknown";
                break;
        }
        if (Response.ContentType != "Application/unknown")
        {
            Response.Flush();
            Response.WriteFile(fileName);
            Response.End();
        }

2 个答案:

答案 0 :(得分:0)

尝试

Response.BinaryWrite(File.ReadAllBytes(filename));

其中filename是文件的完整路径

答案 1 :(得分:0)

尝试添加此标题

Response.AppendHeader("Content-Disposition", "attachment; filename=file.[EXTENSION]")

你应该在这里替换确切的[EXTENSION]。喜欢pdf

Response.AppendHeader("Content-Disposition", "attachment; filename=file.pdf")

然后你也可以写

Response.BinaryWrite(File.ReadAllBytes(filename));
Response.Flush();
Response.End();