1

目前,我正在开发一个用 C# 和 ASP.NET 开发的文件管理系统,用户可以在其中存储批量文件。现在我想查看在浏览器中打开的所有可查看文件格式(即图像、ms office、pdf 等)(无需在客户端本地计算机中下载)。我已经完成了一半的工作,即我的应用程序适用于所有图像文件和 pdf 文件。但是我遇到了 ms office 文件(即.xls, .xlsx, .doc, .docx,.ppt等)格式的问题。我尝试了一些代码

    protected void Page_Load(object sender, EventArgs e)
    {
        //Set the appropriate ContentType.
        string FilePath = MapPath("Test/xyz.pdf");
        Response.Buffer = true;
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "Application/pdf";
        Response.AddHeader("content-disposition", "inline; filename=\"" + "xyz.pdf" + "\"");
        Response.Write(FilePath);
        Response.End();
    }

此代码仅适用于.pdf文件,但是当我更改Response.ContentTypeword 或 excel 文件Application/msword(对于 Microsoft Word 文件)Application/x-msexcel(对于 Microsoft Excel 文件)的内容类型时,此代码不起作用。请指导我该怎么做。我应该使用任何工具,如谷歌文档查看器或其他东西。如果只能使用工具,那么请建议我一个很好的工具。

提前致谢

4

3 回答 3

0

你可以试试这样的。

Response.ContentType = application/force-download
Response.AddHeader "content-disposition","attachment; filename=filename.xls

同样对于 excel,我看到有些人使用:Response.ContentType = "application/vnd.ms-excel"但是你的 MS Word 的 MIME 似乎很好。

这里也是MS Office 2007+ 的所有 MIME 类型的链接

于 2013-04-03T13:34:28.753 回答
0

如果您正在开发可以控制浏览器使用的软件,也就是说您可以指定用户使用哪个浏览器,您可以尝试这个组件http://www.ocxt.com/

于 2013-04-03T14:12:59.207 回答
0
protected void downloadButton_Click(object sender, EventArgs e)
{
    string fileName = "test.xls";
    string filePath = Server.MapPath("~/test.xls");
    Response.Clear();

    Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
    Response.ContentType = "application/force-download";
    Response.WriteFile(filePath);
    Response.Flush();
    Response.End();
}
于 2014-04-23T07:32:41.710 回答