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

Blazor Server项目中使用DxUpload是否必须依赖独立WEB API?

在Blazor Server中使用DxUpload无需独立WEB API

不需要单独创建独立的WEB API项目,Blazor Server本身就能直接处理DxUpload的文件上传请求,完成Excel解析与数据库批量插入操作,具体实现方式如下:

1. 在Blazor Server项目内添加上传处理端点

你可以直接在现有项目中创建API控制器或者使用最小API来接收上传的文件:

示例:创建上传控制器

[ApiController]
[Route("api/[controller]")]
public class UploadController : ControllerBase
{
    private readonly YourDbContext _dbContext;

    public UploadController(YourDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    [HttpPost]
    public async Task<IActionResult> Post(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest("未选择文件");

        // 解析Excel文件(示例使用EPPlus,需先安装对应NuGet包)
        using var package = new ExcelPackage(file.OpenReadStream());
        var worksheet = package.Workbook.Worksheets.First();
        var dataList = new List<YourEntity>();

        // 遍历Excel行,转换为数据库实体对象
        for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
        {
            var entity = new YourEntity
            {
                // 根据实际Excel列映射赋值
                Name = worksheet.Cells[row, 1].Text,
                Value = int.TryParse(worksheet.Cells[row, 2].Text, out var val) ? val : 0
            };
            dataList.Add(entity);
        }

        // 执行批量插入数据库操作
        _dbContext.YourEntities.AddRange(dataList);
        await _dbContext.SaveChangesAsync();

        return Ok("上传与批量插入完成");
    }
}

2. 配置DxUpload指向本地端点

修改DxUpload组件的UploadUrl属性,指向你在Blazor Server中定义的上传端点:

<DxUpload UploadUrl="/api/upload"
          AllowedFileExtensions="@(new List<string> { ".xlsx", ".xls" })"
          MaxFileSize="10485760" />

3. 必要的配置调整

  • 文件大小限制:如果需要支持大文件上传,在Program.cs中调整表单请求大小限制:
builder.Services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 52428800; // 设置为50MB
});
  • 权限验证:若需限制上传权限,可在控制器方法上添加[Authorize]特性,确保仅授权用户能执行上传操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:02:02