ASP.NET MVCで2つのファイルを異なる場所にアップロードする方法


方法1: 同時に2つのファイルをアップロードし、それぞれのファイルに異なる保存先を指定する方法

コントローラのアクションメソッド内で、2つのファイルを受け取ります。ファイルの保存先のパスを指定し、ファイルを保存します。

[HttpPost]
public ActionResult UploadFiles(HttpPostedFileBase file1, HttpPostedFileBase file2)
{
    // ファイル1の保存先
    string file1Path = "保存先のパス1";
    file1.SaveAs(file1Path);
    // ファイル2の保存先
    string file2Path = "保存先のパス2";
    file2.SaveAs(file2Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}

方法2: ファイルごとに異なるアクションメソッドを使用して、それぞれのファイルに異なる保存先を指定する方法

2つの異なるアクションメソッドを作成し、それぞれのアクションメソッドでファイルを受け取り、保存先のパスを指定し、ファイルを保存します。

[HttpPost]
public ActionResult UploadFile1(HttpPostedFileBase file1)
{
    // ファイル1の保存先
    string file1Path = "保存先のパス1";
    file1.SaveAs(file1Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}
[HttpPost]
public ActionResult UploadFile2(HttpPostedFileBase file2)
{
    // ファイル2の保存先
    string file2Path = "保存先のパス2";
    file2.SaveAs(file2Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}

方法3: ビューモデルを使用して、異なる場所に2つのファイルをアップロードする方法

ビューモデルを作成し、2つのファイルをプロパティとして持たせます。ビューでファイルを選択し、ビューモデルをコントローラのアクションメソッドに送信します。アクションメソッド内で、ファイルの保存先のパスを指定し、ファイルを保存します。

public class FileUploadViewModel
{
    public HttpPostedFileBase File1 { get; set; }
    public HttpPostedFileBase File2 { get; set; }
}
[HttpPost]
public ActionResult UploadFiles(FileUploadViewModel model)
{
    // ファイル1の保存先
    string file1Path = "保存先のパス1";
    model.File1.SaveAs(file1Path);
    // ファイル2の保存先
    string file2Path = "保存先のパス2";
    model.File2.SaveAs(file2Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}

ASP.NET MVCを使用して、異なる場所に2つのファイルをアップロードする方法について説明します。以下に、いくつかの方法とそれぞれの方法のコード例を示します。

方法1: 同時に2つのファイルをアップロードし、それぞれのファイルに異なる保存先を指定する方法

コントローラのアクションメソッド内で、2つのファイルを受け取ります。ファイルの保存先のパスを指定し、ファイルを保存します。

[HttpPost]
public ActionResult UploadFiles(HttpPostedFileBase file1, HttpPostedFileBase file2)
{
    // ファイル1の保存先
    string file1Path = "保存先のパス1";
    file1.SaveAs(file1Path);
    // ファイル2の保存先
    string file2Path = "保存先のパス2";
    file2.SaveAs(file2Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}

方法2: ファイルごとに異なるアクションメソッドを使用して、それぞれのファイルに異なる保存先を指定する方法

2つの異なるアクションメソッドを作成し、それぞれのアクションメソッドでファイルを受け取り、保存先のパスを指定し、ファイルを保存します。

[HttpPost]
public ActionResult UploadFile1(HttpPostedFileBase file1)
{
    // ファイル1の保存先
    string file1Path = "保存先のパス1";
    file1.SaveAs(file1Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}
[HttpPost]
public ActionResult UploadFile2(HttpPostedFileBase file2)
{
    // ファイル2の保存先
    string file2Path = "保存先のパス2";
    file2.SaveAs(file2Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}

方法3: ビューモデルを使用して、異なる場所に2つのファイルをアップロードする方法

ビューモデルを作成し、2つのファイルをプロパティとして持たせます。ビューでファイルを選択し、ビューモデルをコントローラのアクションメソッドに送信します。アクションメソッド内で、ファイルの保存先のパスを指定し、ファイルを保存します。

public class FileUploadViewModel
{
    public HttpPostedFileBase File1 { get; set; }
    public HttpPostedFileBase File2 { get; set; }
}
[HttpPost]
public ActionResult UploadFiles(FileUploadViewModel model)
{
    // ファイル1の保存先
    string file1Path = "保存先のパス1";
    model.File1.SaveAs(file1Path);
    // ファイル2の保存先
    string file2Path = "保存先のパス2";
    model.File2.SaveAs(file2Path);
    // 必要に応じて他の処理を追加
    return RedirectToAction("Index");
}

これらはいくつかの方法の例です。どの方法を選択するかは、プロジェクトの要件や設計によって異なる場合があります。必要に応じてコードを調整し、異なる場所に2つのファイルをアップロードする方法を実装