【C# 功能总结 14】C# 文件上传到服务器

在C#中将文件上传到服务器通常涉及到Web应用程序开发,尤其是使用ASP.NET Core或传统的ASP.NET Web Forms/MVC框架。以下是这两种框架下实现文件上传的基本步骤和示例代码。

使用ASP.NET Core进行文件上传

HTML部分

首先,创建一个HTML表单,允许用户选择并上传文件。


html

<form method="post" enctype="multipart/form-data" asp-action="UploadFile">
    <input type="file" name="file" />
    <button type="submit">Upload</button>
</form>
Controller部分

在控制器中处理文件上传逻辑。


csharp

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading.Tasks;

public class FileUploadController : Controller
{
    [HttpPost("upload")]
    public async Task<IActionResult> UploadFile(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest("No file uploaded.");

        // 定义文件保存路径
        var uploadsFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/uploads");
        if (!Directory.Exists(uploadsFolder))
        {
            Directory.CreateDirectory(uploadsFolder);
        }

        var filePath = Path.Combine(uploadsFolder, file.FileName);

        // 将文件保存到服务器
        using (var stream = new FileStream(filePath, FileMode.Create))
        {
            await file.CopyToAsync(stream);
        }

        return Ok(new { fileName = file.FileName });
    }
}

使用传统ASP.NET MVC进行文件上传

HTML部分

创建一个表单让用户选择文件。


html

@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" />
    <input type="submit" value="Upload" />
}
Controller部分

处理文件上传逻辑。


csharp

using System.IO;
using System.Web.Mvc;

public class HomeController : Controller
{
    [HttpPost]
    public ActionResult UploadFile(HttpPostedFileBase file)
    {
        if (file != null && file.ContentLength > 0)
        {
            // 定义文件保存路径
            var uploadsFolder = Server.MapPath("~/App_Data/uploads");
            if (!Directory.Exists(uploadsFolder))
            {
                Directory.CreateDirectory(uploadsFolder);
            }

            var fileName = Path.GetFileName(file.FileName);
            var filePath = Path.Combine(uploadsFolder, fileName);

            // 将文件保存到服务器
            file.SaveAs(filePath);
        }

        ViewBag.Message = "File Uploaded Successfully!!";
        return View();
    }
}

注意事项

  1. 安全性: 确保对上传的文件进行验证,防止恶意文件上传。可以检查文件类型、大小等。
  2. 存储位置: 根据应用的需求,选择合适的存储位置。避免将文件存储在Web根目录下,以减少安全风险。
  3. 错误处理: 添加适当的错误处理逻辑,以便在文件上传失败时向用户提供有意义的反馈。

通过以上步骤和示例代码,您可以在ASP.NET Core和传统ASP.NET MVC应用程序中实现文件上传功能。根据具体需求,您可以进一步扩展和优化这些代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路飞VS草帽

感谢支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值