2

私は次のコードを持っています:

    [HttpPost]
    public ActionResult FileUploadMultiple(IEnumerable<HttpPostedFileBase> files)
    {

        foreach (var file in files)
        {
            if (file != null)
            {
                var fileName = Path.GetFileName(file.FileName);
                string extension = Path.GetExtension(file.FileName);

                var path = Path.Combine("C://Reports//36000", fileName);

                file.SaveAs(path);

            }

        }

        return RedirectToAction("Index");
    }

テストしているファイルが2つあります。そのため、2回ループする必要があります。最初のものは、指定されたパスにうまく保存されます。コードが実行されて2番目のファイルを実行しようとすると、次のメッセージが表示されます。

別のプロセスによって使用されているため、プロセスはファイル'C:\ Reports \ 36000 \ Report#36028.pdf'にアクセスできません。

私は処分する必要があると思いますが、私がしようとしたとき、file.Dispose()これはで正しくないようでしたIntellisense

4

1 に答える 1

1

保存する前に、これを試して既存のファイルを削除できます。

if (System.IO.File.Exists(path))
 System.IO.File.Delete(path);
file.SaveAs(path);
于 2013-02-01T15:32:44.183 に答える