【问题标题】:FileUpload control in asp.net throwing exceptionasp.net中的FileUpload控件抛出异常
【发布时间】:2012-11-28 11:26:20
【问题描述】:

我正在尝试使用 C# 读取 Excel 工作表,该工作表将由最终用户从 fileUpload 控件加载。

我正在编写代码以将服务器上的文件保存在另一个按钮控件(上传)的事件处理程序中。但是当我点击上传按钮时,我得到了这个异常:

该进程无法访问文件“E:\MyProjectName\App_Data\sampledata.xlsx”,因为它正被另一个进程使用。

这是我在事件处理程序中使用的代码:

string fileName = Path.GetFileName(file_upload.PostedFile.FileName);
string fileExtension = Path.GetExtension(file_upload.PostedFile.FileName);
string fileLocation = Server.MapPath("~/App_Data/" + fileName);
//if (File.Exists(fileLocation))
//    File.Delete(fileLocation);
file_upload.SaveAs(fileLocation);

即使删除文件也不起作用,抛出相同的异常。

【问题讨论】:

  • 您确定没有 Excel 进程阻止它吗? (任务管理器)
  • 感谢大家的回复;不,我在任务管理器中看到的文件没有打开。

标签: asp.net file-upload


【解决方案1】:

确保其他进程没有访问该文件。

当您尝试上传文件时,可能会出现此错误,但未明确将其从内存中删除。

所以试试这个:

try
{
    string fileName = Path.GetFileName(file_upload.PostedFile.FileName);
    string fileExtension = Path.GetExtension(file_upload.PostedFile.FileName);
    string fileLocation = Server.MapPath("~/App_Data/" + fileName);
    //if (File.Exists(fileLocation))
    //    File.Delete(fileLocation);
    file_upload.SaveAs(fileLocation);
}
catch (Exception ex)
{
    throw ex.Message;
}
finally
{
    file_upload.PostedFile.InputStream.Flush();
    file_upload.PostedFile.InputStream.Close();
    file_upload.FileContent.Dispose();    
    //Release File from Memory after uploading
}

【讨论】:

    【解决方案2】:

    引用挂在内存中,如果您使用 Visual Studio,请尝试使用 Clean Solution 并重新构建,如果您在 IIS 中,只需回收您的应用程序。

    为避免此问题,请在使用文件后尝试处理它们,例如:

    using(var file= new FileInfo(path))
    {
       //use the file
      //it will be automatically disposed after use
    }
    

    【讨论】:

      【解决方案3】:

      如果我正确理解了场景。 对于上传控件,我认为您不必为上传按钮编写代码。当您单击按钮时,您的上传控件已锁定文件并使用它,因此它已被一个进程使用。为按钮编写的代码将是另一个过程。 在此之前,请检查您的文件是否未在任何地方打开并等待编辑。

      【讨论】:

        猜你喜欢
        • 2011-04-24
        • 1970-01-01
        • 2013-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-24
        • 1970-01-01
        • 2010-11-18
        相关资源
        最近更新 更多