📜  ASP.NET MVC 两个文件上传,不同的目的地 - Html (1)

📅  最后修改于: 2023-12-03 14:59:24.276000             🧑  作者: Mango

ASP.NET MVC 两个文件上传,不同的目的地 - Html

在ASP.NET MVC中,文件上传是很常见的需求之一。本文将介绍如何同时上传两个文件,并将它们分别保存到不同的目的地。

HTML

首先,我们需要一个HTML表单来上传文件。在视图文件中添加如下代码:

<div>
    <form method="post" action="@Url.Action("Upload", "Home")" enctype="multipart/form-data">
        <input type="file" name="file1" /><br/>
        <input type="file" name="file2" /><br/>
        <input type="submit" value="Upload" />
    </form>
</div>

其中,enctype="multipart/form-data"是必须的,以便支持文件上传。

控制器

我们需要处理上传文件的逻辑,将它们分别保存到不同的地方。

public class HomeController : Controller
{
    public ActionResult Upload()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Upload(HttpPostedFileBase file1, HttpPostedFileBase file2)
    {
        if (file1 != null && file2 != null)
        {
            var path1 = Path.Combine(Server.MapPath("~/Uploads"), Path.GetFileName(file1.FileName));
            file1.SaveAs(path1);

            var path2 = Path.Combine(Server.MapPath("~/Downloads"), Path.GetFileName(file2.FileName));
            file2.SaveAs(path2);

            ViewBag.Message = "Files uploaded successfully.";
        }
        else
        {
            ViewBag.Message = "Please choose both files to upload.";
        }

        return View();
    }
}

我们定义了两个上传文件的参数file1和file2,然后在POST方法中进行处理。我们可以通过Server.MapPath("~/Uploads")Server.MapPath("~/Downloads")方法来获得上传文件的目的地,然后使用SaveAs方法将它们保存到相应的文件夹中。最后,我们在ViewBag中设置了一个消息,以便在视图中显示上传结果。

结论

在这篇文章中,我们介绍了如何同时上传两个文件,并将它们分别保存到不同的目的地。我们使用了HTML表单来上传文件,然后在控制器中进行处理。这是一个非常基本的示例,你可以根据自己的需要进行扩展。