ASP.. NET MVC (SharePoint PHA)文件保存不能在IE中工作

本文关键字:不能 保存 IE 工作 文件 MVC NET SharePoint PHA ASP | 更新日期: 2023-09-27 18:12:33

我的MVC应用程序接受一个excel文件,并使用该文件在SharePoint中创建列表项。这适用于所有非ie浏览器(包括Opera..)。我的代码开始如下:

public ActionResult ParseExcel() //RedirectResult
        {
            try
            {
                if (Request.Files.Count == 1)
                {
                    var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
                    using (var clientContext = spContext.CreateUserClientContextForSPHost())
                    {
                        if (clientContext != null)
                        {
                            try
                            {
                                if (Request.Files[0].FileName.EndsWith(".xlsx"))
                                {
                                    //1. Temporarily store Excel file for processing
                                    string folder = Path.Combine(Path.GetTempPath(), "HNZ");
                                    if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
                                    string localExcelPath = Path.Combine(folder, Request.Files[0].FileName);
                                    Request.Files[0].SaveAs(localExcelPath);

我99%确定故障发生在这一点上,因为没有进展到代码的其余部分。在我的开发环境中没有这个问题,不幸的是,我不能在pre-prod中调试这个问题。

更新:从我所读到的,我可以添加像HttpContext.Response.CacheControl = Request.Browser.Browser == "IE" ? "private" : "no-cache"的东西到我的代码,以说明IE。这真的就是全部吗?如果是这样,我是否需要在某些地方添加这一点,或者只要它发生在"保存"之前就没关系?如果可以的话,我会在这个项目不得不取消之前给这个问题一个赏金。

ASP.. NET MVC (SharePoint PHA)文件保存不能在IE中工作

我相信这可能是"savea"方法的问题,因为IE似乎将localExcelPath存储为我的prod环境中的完整路径("MyFolder/Blah/Test.xlsx"),我使用的所有其他浏览器都将其存储为"Test.xlsx"。在我的测试环境中没有发生这种情况,因为没有涉及到服务器。

编辑:这就是问题所在。