You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC 上传图片转Base64时模型应选用什么数据类型?

解决方案

1. 修正模型属性类型

上传文件无法使用string类型直接接收,ASP.NET Core 中对应表单上传文件的专用类型是 IFormFile,你需要先修改模型定义:

using Microsoft.AspNetCore.Http;

public class TestModel
{
    public IFormFile Image { get; set; }
}

2. 修正视图表单配置

文件上传要求表单必须指定 enctype="multipart/form-data" 属性,否则后端无法正确获取到文件内容,可额外添加accept属性限制仅能选择图片文件:

@model Test.Models.TestModel

<form asp-action="Test" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <input asp-for="Image" class="form-control" type="file" accept="image/*" />
    </div>
    <div class="form-group">
        <input type="submit" value="Create" class="btn btn-primary" />
    </div>
</form>

3. 后端将IFormFile转换为Base64

在对应的Post接口中,读取IFormFile的流内容,再转换为Base64字符串即可,示例代码如下:

[HttpPost]
public IActionResult Test(TestModel model)
{
    string base64Image = string.Empty;
    if (model.Image != null && model.Image.Length > 0)
    {
        using (var memoryStream = new MemoryStream())
        {
            model.Image.CopyTo(memoryStream);
            byte[] imageBytes = memoryStream.ToArray();
            // 转换为纯Base64字符串
            base64Image = Convert.ToBase64String(imageBytes);
            // 若需要可直接赋值给img标签src的格式,可拼接Data URI前缀
            // base64Image = $"data:{model.Image.ContentType};base64,{base64Image}";
        }
    }
    // 后续业务逻辑
    return View();
}

内容的提问来源于stack exchange,提问作者user14282205

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:06:08