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。这真的就是全部吗?如果是这样,我是否需要在某些地方添加这一点,或者只要它发生在"保存"之前就没关系?如果可以的话,我会在这个项目不得不取消之前给这个问题一个赏金。
我相信这可能是"savea"方法的问题,因为IE似乎将localExcelPath
存储为我的prod环境中的完整路径("MyFolder/Blah/Test.xlsx"),我使用的所有其他浏览器都将其存储为"Test.xlsx"。在我的测试环境中没有发生这种情况,因为没有涉及到服务器。
编辑:这就是问题所在。