📜  在 asp.net c# mvc 示例中上传文件 - C# (1)

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

在 ASP.NET C# MVC 示例中上传文件

在 ASP.NET C# MVC 应用程序中,文件上传是一个常见的功能。本文将介绍如何在 ASP.NET C# MVC 中实现文件上传,并提供示例代码。

1. 在视图中创建文件上传表单

首先,在需要添加文件上传功能的视图中,需要创建一个文件上传表单。可以使用 HTML <input> 元素来创建一个文件选择输入框,并将其设置为文件类型:

<form action="/Controller/Action" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="Upload" />
</form>

注意,enctype 属性设置为 "multipart/form-data",以便支持文件上传。

2. 在控制器中处理文件上传

接下来,在控制器中处理文件上传。可以在控制器的对应动作方法中,使用 HttpPostedFileBase 类型的参数来接收上传的文件:

[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
    // 文件上传逻辑
    if (file != null && file.ContentLength > 0)
    {
        // 保存文件到服务器
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine(Server.MapPath("~/Uploads"), fileName);
        file.SaveAs(path);

        // 其他逻辑处理

        return RedirectToAction("Index", "Home");
    }

    return View();
}

在上面的示例中,首先检查文件是否存在且大小大于 0,然后将文件保存到服务器上的指定路径(此处示例为 "~/Uploads" 目录),并进行其他逻辑处理。

3. 设置上传文件大小限制

默认情况下,ASP.NET 允许上传的文件大小最大为 4MB。如果需要更改这个限制,可以在 web.config 文件中进行配置:

<system.web>
    <httpRuntime maxRequestLength="100000" />
</system.web>

上述示例将上传的文件大小限制为 100 MB。

4. 显示上传结果

为了显示上传结果,可以在视图中添加一个消息区域来显示上传成功或失败的消息。例如,在上传后重定向到一个显示消息的页面:

return RedirectToAction("UploadResult", new { success = true });

// UploadResult 动作方法
public ActionResult UploadResult(bool success)
{
    ViewBag.Success = success;
    return View();
}

然后在对应的视图中使用以下代码来显示消息:

@if (ViewBag.Success)
{
    <div class="success">文件上传成功!</div>
}
else
{
    <div class="error">文件上传失败!</div>
}

以上就是在 ASP.NET C# MVC 示例中实现文件上传的步骤。如果按照上述步骤进行操作,即可在应用程序中成功添加文件上传功能。

注意:请根据实际需求和安全考虑对文件上传功能进行合适的验证和检查。

希望本文对你有所帮助!