PPT未在MVC应用程序中下载

本文关键字:下载 应用程序 MVC 未在 PPT | 更新日期: 2023-09-27 18:25:04

我正在尝试将项目文件夹中存在的PPT下载到下载文件夹中。

        System.IO.FileInfo file = new System.IO.FileInfo(HttpContext.Server.MapPath("~/Output/Document.pptx"));
        DownloadPPT("Document.pptx", file);  

这是下载PPT功能:

    public void DownloadPPT(string fileName, System.IO.FileInfo file)
    {
        if (!file.Exists)
        {
        }
        else
        {
            // clear the current output content from the buffer
            Response.Clear();
            // add the header that specifies the default filename for the 
            // Download/SaveAs dialog 
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
            //// add the header that specifies the file size, so that the browser
            //// can show the download progress
            //Response.AddHeader("Content-Length", file.Length.ToString());
            // specify that the response is a stream that cannot be read by the
            // client and must be downloaded
            Response.ContentType = "application/vnd.ms-powerpoint";
            // send the file stream to the client
            Response.WriteFile(Server.MapPath("~/Output/Document.pptx"));
        }
    }  

没有错误,但是没有下载ppt
有人能说出我的代码出了什么问题吗?

PPT未在MVC应用程序中下载

您可以尝试以下代码:

Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.ContentType = "application/vnd.ms-powerpoint";
Response.Buffer = true;
using (FileStream fileStream = File.Open(Server.MapPath("~/Output/Document.pptx"), FileMode.Open)
{
    fileStream.CopyTo(Response.OutputStream);
}
Response.End();

我不能告诉你你的代码到底出了什么问题,但我在一个非常相似的上下文中使用这个片段,它一直对我有效。如果没有,也许是因为你的其他情况?您似乎可以访问Response属性,这就是为什么我想不出任何东西会阻止这个片段正常工作。但如果这没有帮助的话,肯定还有其他人比我更有经验。

一个建议是使用Iframe,它将推送未渲染的格式文件下载。。

更多信息请点击此处