下载的文件已损坏,而不是

我试图通过webapi下载文件,除了Excel以外,它完美地工作。 excel文件下载成功,当我打开它时,它会给我一个“File is corrupt”错误。 但是,它不是腐败的。

当我在互联网上搜索时,它要求我遵循以下内容:

  • 打开Excel。
  • 点击文件>选项。
  • 选择信任中心>信任中心设置。
  • 选择受保护的视图。
  • 取消选中受保护视图>确定下的所有选项。
  • 重新启动Excel并尝试打开Excel文档。
  • 更改此设置后,我可以无任何问题地打开下载的文件。

    我可以理解这是客户端的事情,但我不想在每台机器上都这样做。 因为,根据我对保护的理解,如果您下载任何文件,它仍然会打开,但它会处于保护模式。

    但在我的情况下,它显示为“File is Corrupt”,这是对最终用户的错误解释。

    我确信有很多网站可以从那里下载,并且可以按照预期的方式工作,即你仍然可以打开,但是处于保护模式。

    请注意:从Excel 2013上传文件并从Excel 2010中查看。

    这是我目前使用的下载代码:

    private HttpResponseMessage Execute()
            {
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
                StreamContent streamContent = null;
    
                if (Content == null)
                {
                    streamContent = new StreamContent(File.OpenRead(MapPath(LocalPath)));
                }
                else
                {
                    streamContent = new StreamContent(new MemoryStream(Content));
                }
    
                response.Content = streamContent;
                response.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(ContentType);
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = DownloadFileName,
                };
    
                return response;
            }
    

    内容类型设置为:application / vnd.openxmlformats-officedocument.spreadsheetml.sheet


    今天我使用从互联网下载的文件时遇到了与保护模式相同的问题。 事实证明,根本原因是用户失去了对%TEMP%的权限(通常是c: users username AppData Local Temp)。 MS Office将该文件放在该文件夹中的沙箱中以帮助保护您。

    您可以通过运行验证%TEMP%的位置

    echo %TEMP%
    

    在该用户的命令行上。

  • 使用Windows资源管理器浏览到该文件夹
  • 右键单击Temp文件夹
  • 转到权限选项卡
  • 授予当前用户完全控制权。
  • 链接地址: http://www.djcxy.com/p/46881.html

    上一篇: Downloaded file is corrupt which is not

    下一篇: PHP: Download file script not working on iPad