System.IO.IOException:'该进程无法访问文件“文件位置”,因为它正在被另一个进程使用。

时间:2019-08-20 08:10:51

标签: c# asp.net http

我需要保存一个文件,然后阅读。但是我得到了错误:

  

进程无法访问文件”

当我调试它时。

通过Chrome调试时,我也收到此错误。但是,当我通过IE调试相同的代码时,出现错误:

  

不支持给定路径的格式。”

不确定出什么问题

Controller.cs

public HttpResponseMessage Upload()
{
    HttpResponseMessage response = new HttpResponseMessage();
    var httpRequest = HttpContext.Current.Request;
    if (httpRequest.Files.Count > 0)
    {
        foreach (string file in httpRequest.Files)
        {
            var postedFile = httpRequest.Files[file];
            string fileName = Path.GetFileName(postedFile.FileName);
            string fileExtension = Path.GetExtension(postedFile.FileName);
            string fileLocation = HttpContext.Current.Server.MapPath("~/UploadFile/" + postedFile.FileName);
            postedFile.SaveAs(fileLocation);

PostedFile.SaveAs(fileLocation)是引发错误的地方。

2 个答案:

答案 0 :(得分:2)

posted.FileName是客户端计算机上的完整路径,例如 C:\ users \ myName \ Documents \ mydoc.pdf 。您尝试将其连接到服务器 UploadFile 文件夹,然后在该结果字符串上调用 Server.MapPath

这将永远无法进行。

您已经从完整路径中提取了Filename部分。因此,只需使用它即可。

string fileLocation = 
   HttpContext.Current.Server.MapPath("~/UploadFile/" + fileName);

答案 1 :(得分:0)

if (!(Directory.Exists((fileLocation ))))
                {
                    Directory.CreateDirectory((fileLocation ));
                }
     postedFile.SaveAs(fileLocation);

请尝试此操作,如果出现错误,请发布“ fileLocation”值,该变量中将显示什么内容。