ASP.NET MVC头像上传功能实现教程EntityFramework图片存储方法
1,先展示一下整体的效果

2,接下来展示用户添加以及上传头像代码、添加用户界面

要搞定头像上传,前端的表单设计是关键第一步。下面这段代码,就清晰地区分了文件选择和最终保存的路径。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
@Html.LabelFor(model => model.img, “头像:”, htmlAttributes: new { @class = “control-label col-md-2” })
表单有了,真正的重头戏在用户选择文件后的处理上。来看看支撑上传功能的Ja vaScript代码。
前端把文件流准备好了,后端控制器就需要稳稳接住它。这个上传方法涵盖了验证、存储和反馈的全流程。
//图片上传
[HttpPost]
public ActionResult file(HttpPostedFileBase pic)
{
try
{
if (pic != null)
{
if (pic.ContentLength == 0)
{
return Content(“209”); //获取上传的图片
}
else
{
//判断文件的后缀名,是否符合条件
string backFix = Path.GetExtension(pic.FileName);
if (backFix != “.gif” && backFix != “.png” && backFix != “.jpg” && backFix != “.jpeg”)
{
return Content(“210”); //格式不对
}
string fileName = DateTime.Now.ToString(“MMddHHmmss”) + backFix;
string strPath = Server.MapPath(“~/Content/pic/” + fileName);
pic.Sa veAs(strPath);
//返回路径
return Content(“/Content/pic/” + fileName);
}
}
else
{
return Content(“300”); //图片不能为空
}
}
catch (Exception )
{
return Content(“400”); //上传失败
}
}
文件保存到服务器后,我们并不是存原始文件名,而是通过时间戳重命名,防止覆盖。最终,数据库里存的就是这个相对路径,如下图所示。

数据存好了,最后一步就是在界面上完美地呈现出来。在列表页展示头像,本质上就是将存储的路径转换为可访问的图片标签。

从文件选择、前端校验、异步上传、后端处理到数据库存储和最终页面展示,这一套完整流程走下来,就是一个健壮的头像上传功能的核心实现。希望以上的梳理能给你带来清晰的参考。
热门专题
热门推荐
2026年,Bitget在交易所排行榜上展现出强劲的竞争力。其表现主要体现在用户资产安全体系的持续加固、多元化产品矩阵的成熟与创新,以及在合规与全球化布局上的显著进展。平台通过优化现货与衍生品交易体验,并深化Web3生态建设,巩固了其在行业中的领先地位,获得了市场与用户的广泛认可。
HttpClient的7个常见陷阱与规避指南 在 NET 生态里进行项目开发,HttpClient 几乎是调用外部 API 绕不开的一个工具。它的上手门槛很低,用起来很顺手,但恰恰是这份“简单”,让不少开发者放松了警惕。如果不清楚它内部的运作机制,一不小心就可能掉进坑里,轻则请求失败,重则引发服务
如何解决 NET Core项目与Linux服务器之间的时间同步问题 导语 搞分布式系统的开发者,多少都踩过时间不同步的“坑”。这事说大不大,说小不小——日志对不上、订单乱取消、交易出岔子,追根溯源,往往是几台机器的时间“各走各的”。尤其是在 NET Core应用遇上Linux服务器的场景,时区、格式
1 首先安装必要的NuGet包 第一步,咱们得把项目里需要的“砖瓦”——也就是那几个关键的NuGet包——给准备好。具体是下面这几个: NLog:日志记录的核心库。 NLog Config (可选):如果你想让配置文件自动生成,可以加上这个。 当然,别忘了根据你用的数据库类型,安装对应的提供程序。
在 NET Core 中玩转 RabbitMQ:从零搭建可靠的消息队列 消息队列是现代应用解耦和异步通信的基石,而 RabbitMQ 无疑是这个领域的明星选手。它基于 AMQP 协议,为不同应用程序间的可靠消息传递提供了强大支持。今天,我们就来深入聊聊,如何在 NET Core 环境中,亲手搭建





