zoukankan      html  css  js  c++  java
  • .net core 基于multipart/form-data的文件上传,这里以图片上传为例

    首先传递的数据格式大概如下:

    然后就可以在后端获取数据了:直接上代码了哈:

    [HttpPost]        ///分别获取 data数据和调用图片上传方法
    public async Task<JsonResult> UploadDefault()
    {
    var data =Request.Form["data"];
    var dataPosition=GetSortModel(data);  //json反序列化为 list型
    BootstrapFileResult res = await UploadCommonAsync(); //图片上传并返回  图片id
    var picid = res.ImgId;
    PicandPoint user = new PicandPoint();
    user.LevelId = dataPosition[0].id;
    user.PositionX = dataPosition[0].positionX;
    user.PositionY = dataPosition[0].positionY;
    user.FotoId = picid;
    JsonResult result = await CreatePoint(user);
    return result;
    }

    [HttpPost]     ////将文件保存到指定路径,然后在存到数据库

    public async Task<BootstrapFileResult> UploadCommonAsync()
    {
    ////var data = Request.Form["data"];
    var files = Request.Form.Files;
    var baseDir = _options.ImgDir;
    var res = new BootstrapFileResult();
    var now = DateTime.Now;
    if (!Directory.Exists(baseDir))
    {
    Directory.CreateDirectory(baseDir);
    }
    for (int i = 0; i < files.Count; ++i)
    {
    var newnamere = "";
    var file = files[i];

    var imgid = 0;
    try
    {
    var orgName = file.FileName;
    var newName = GetRandomFileName(orgName);
    newnamere = newName;
    imgid = await _indexer.StoreImageRecord(orgName, newnamere);

    var filePath = baseDir + "/" + newName;
    using (var stream = new FileStream(filePath, FileMode.Create))
    {
    await file.CopyToAsync(stream);  //将图片写到指定文件夹
    }
    var bitmap = new ImageSharp.Image(file.OpenReadStream());
    var width = bitmap.Width;
    var height = bitmap.Height;
    await _indexer.UpdateImageDataEx(imgid, width, height);
    }
    catch (Exception e) { continue; }


    res.ImgId = imgid;

    }

    return res;
    }

    ///这个方法是将获取到的 data为stringvalue类型数据转化为list型:

    private List<UpPoint> GetSortModel(string sortModel)
    { List<UpPoint> list = new List<UpPoint>();
    if (sortModel == null)
    {
    return list;
    }
    string array = $"[{sortModel}]";
    var deserialized = JsonConvert.DeserializeObject<List<UpPoint>>(array);
    return deserialized;
    }

  • 相关阅读:
    大数据平台Hadoop集群搭建
    分布式文件系统之FastDFS安装部署
    Nginx反代MogileFS集群
    分布式文件系统之MogileFS的安装使用
    高可用服务之Keepalived利用脚本实现服务的可用性检测
    高可用服务之Keepalived高可用LVS集群
    高可用服务之Keepalived邮件通知配置
    高可用服务之Keepalived基础入门
    高可用集群corosync+pacemaker之pcs安装使用
    高可用集群corosync+pacemaker之crmsh使用(二)
  • 原文地址:https://www.cnblogs.com/fishyues/p/8665133.html
Copyright © 2011-2022 走看看