上传文件后端

实体

/// <summary>
/// 会员培训表
/// </summary>
public partial class Train : FullAuditedAggregateRoot<Guid>, IMultiTenant
{
    /// <summary>
    /// 培训ID,唯一的,不可重复、签到二维码
    /// </summary>
    public Guid? TenantId { get; set; }


    /// <summary>
    /// 培训ID
    /// </summary>
    public string? TrainId { get; set; }

    public string? OrgId { get; set; }

    /// <summary>
    /// 教室ID
    /// </summary>
    public string? TeacherId { get; set; }

    /// <summary>
    /// 培训标题
    /// </summary>
    public string? Title { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime? AddTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }

    /// <summary>
    /// 是否启用 0启用 1禁用
    /// </summary>
    public int? IsEnable { get; set; }

    /// <summary>
    /// 是否需要线上培训 0、需要、1不需要
    /// </summary>
    public int? IsNeedTrain { get; set; }

    /// <summary>
    /// 是否需要线上考试  0、需要、1不需要
    /// </summary>
    public int? IsNeedExam { get; set; }
    /// <summary>
    /// 培训考试主题ID
    /// </summary>
    public Guid TrainingExaminationQuestionBankID { get; set; }
    /// <summary>
    /// 培训参与人员
    /// </summary>
    public string? Participants { get; set; }
    /// <summary>
    /// 培训对象 0会员
    /// </summary>
    public int? TargetGroup { get; set; }
    /// <summary>
    /// 培训时间
    /// </summary>
    public string? Often { get; set; }
    /// <summary>
    /// 讲师
    /// </summary>
    public string? Lecturer { get; set; }
    /// <summary>
    /// 文件上传
    /// </summary>
    public string? Documents { get; set; }
    /// <summary>
    /// 礼品id
    /// </summary>
    public Guid? Giftid { get; set; }
    /// <summary>
    /// 礼品名称
    /// </summary>
    public string? GiftsName { get; set; }
    /// <summary>
    /// 礼品数量
    /// </summary>
    public int? GiftsNum { get; set; }
    /// <summary>
    /// 封面图url
    /// </summary>
    public string? Cover { get; set; }

}
DTO
 public class TrainDTO
 {
     public Guid? TenantId { get; set; }


     /// <summary>
     /// 培训ID,唯一的,不可重复、签到二维码
     /// </summary>
     public string? TrainId { get; set; }

     public string? OrgId { get; set; }

     /// <summary>
     /// 教室ID
     /// </summary>
     public string? TeacherId { get; set; }

     /// <summary>
     /// 培训标题
     /// </summary>
     public string? Title { get; set; }

     /// <summary>
     /// 创建时间
     /// </summary>
     public DateTime? AddTime { get; set; }

     /// <summary>
     /// 结束时间
     /// </summary>
     public DateTime? EndTime { get; set; }

     /// <summary>
     /// 是否启用 0启用 1禁用
     /// </summary>
     public int? IsEnable { get; set; }

     /// <summary>
     /// 是否需要线上培训 0、需要、1不需要
     /// </summary>
     public int? IsNeedTrain { get; set; }

     /// <summary>
     /// 是否需要线上考试  0、需要、1不需要
     /// </summary>
     public int? IsNeedExam { get; set; }
     /// <summary>
     /// 培训考试主题ID
     /// </summary>
     public Guid TrainingExaminationQuestionBankID { get; set; }
     /// <summary>
     /// 培训参与人员
     /// </summary>
     public string? Participants { get; set; }
     /// <summary>
     /// 培训对象 0会员
     /// </summary>
     public int? TargetGroup { get; set; }
     /// <summary>
     /// 培训时间
     /// </summary>
     public string? Often { get; set; }
     /// <summary>
     /// 讲师
     /// </summary>
     public string? Lecturer { get; set; }
     /// <summary>
     /// 文件上传
     /// </summary>
     public List<IFormFile>? AttachFiles { get; set; }
     public string? Documents { get; set; }
     /// <summary>
     /// 礼品id
     /// </summary>
     public Guid? Giftid { get; set; }
     /// <summary>
     /// 礼品名称
     /// </summary>
     public string? GiftsName { get; set; }
     /// <summary>
     /// 礼品数量
     /// </summary>
     public int? GiftsNum { get; set; }
     /// <summary>
     /// 封面图url
     /// </summary>
     public List<IFormFile>? CoverFiles { get; set; }
     public string ? Cover { get; set; }
 }

关键是
public List? AttachFiles { get; set; } 接收前端文件
public string? Documents { get; set; } 保存文件路径到数据库


引用
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;

注入
 private readonly IHostEnvironment _webHostEnvironment;
 private readonly IConfiguration _configuration;
  public TrainAppService(IHostEnvironment webHostEnvironment, IConfiguration configuration)
  {
  _webHostEnvironment = webHostEnvironment;
_configuration = configuration;
  }
  /// <summary>
/// 创建培训
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<bool> AddTrain(TrainDTO input)
{

    //处理文件
    var files = input.AttachFiles;
    var files2 = input.CoverFiles;
    if (input.AttachFiles.Count>0)
    {
        var file = input.AttachFiles[0];
        var root = _webHostEnvironment.ContentRootPath;
        var sectionValue = _configuration.GetValue<string>("ContentRootPath");
        if (!string.IsNullOrWhiteSpace(sectionValue))
        {
            root = sectionValue;
        }

        var vdir = $@"file\blmodel\";

        string dir = Path.Combine(root, vdir);

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }
        var Extension = Path.GetExtension(file.FileName);
        var newName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + Extension;
        string FilePath = dir + newName;
        using (FileStream fs = System.IO.File.Create(dir + newName))
        {
            file.CopyTo(fs);
            fs.Flush();
        }
        input.Documents = dir + newName;

    }


    映射添加
    Train train = ObjectMapper.Map<TrainDTO, Train>(input);
    var obj = await Repository.InsertAsync(train);
    if (obj != null)
    {
        return true;
    }
    return false;
}
  
H5上传文件后端应该如何接受? H5是一种前端技术,用于网页开发。在H5中,可以通过HTML5提供的文件上传组件实现文件上传功能。当用户选择上传文件后,H5会将文件内容以二进制数据的形式发送给后端后端需要相应的处理来接收和处理这些文件。 在接受H5上传文件时,后端可以使用一些常见的技术和框架来处理文件上传,如Node.js的Express框架、Java的Spring框架、Python的Flask框架等。具体的接收过程如下: 1. 后端需要提供一个接口或路由来处理文件上传请求。这个接口应该是能够处理文件上传请求的特定URL地址。 2. H5会将文件数据通过HTTP协议的POST请求发送给后端后端需要在接口中处理该POST请求。 3. 后端接口需要使用合适的方法来解析和处理请求中的文件数据。对于Node.js和Express框架,可以使用multer中间件来处理文件上传。对于Java的Spring框架,可以使用MultipartFile类来接收文件数据。对于Python的Flask框架,可以使用Flask框架提供的请求对象来获取文件数据。 4. 后端通过相应的方法获取上传的文件数据后,可以进行进一步的处理,如保存文件至服务器的特定路径,将文件信息保存至数据库等。 5. 后端在处理完文件上传请求后,可以向H5返回相应的结果,如成功或失败的消息。 总之,H5上传文件后端需要提供相应的接口或路由来接收文件上传请求,并使用合适的技术和框架来接收和处理文件数据。同时,后端还需要进行适当的处理,如保存文件、更新数据库等,以完成文件上传功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值