首页 > 其他分享 >.NetCore 接口接收图片文件并保存

.NetCore 接口接收图片文件并保存

时间:2022-11-08 13:57:10浏览次数:43  
标签:文件 Ok string NetCore 接口 folderUrl var fileCollection 接收

本文实例环境及版本 .NetCore3.1

 public IActionResult UploadFile([FromForm] IFormCollection formCollection)
        {

        if (formCollection == null || formCollection.Count <= 0)
        {
          return Ok("未选择附件,请选择要上传的文件");
        }

            FormFileCollection fileCollection = (FormFileCollection)formCollection.Files;

            string[] pictureFormatArray = { "png", "jpg", "jpeg", "bmp", "gif", "ico", "PNG", "JPG", "JPEG", "BMP", "GIF", "ICO" };

            var fileSize = fileCollection.Sum(f => f.Length);
            var fileCoun = fileCollection.Count;
            //判断上传文件总大小不得大于50M
            if (fileSize > 52428800)
            {
                return Ok("文件不得大于50M");
            }foreach (IFormFile file in fileCollection)
            {
                StreamReader reader = new StreamReader(file.OpenReadStream());
                String content = reader.ReadToEnd();
                String name = file.FileName; //文件原名称
                //文件类型
                string suffix = name.Split('.')[1];
                if (!pictureFormatArray.Contains(suffix))
                {
                    return Ok("只能上传图片格式文件");
                }
                //要保持的文件夹路径
                var folderUrl = "c:/FileData" + name;
                //文件保存后的新名称
                var fileNameNew = DateTime.Now.ToString("yyyyMMddHHmmssffff");

                //查看该物理路径是否存在,如果不存在则新建对应文件夹
                if (!Directory.Exists(folderUrl))
                {
                    Directory.CreateDirectory(folderUrl);
                }

                //附件存储的全路径信息
                string filePath = string.Format(folderUrl + "/" + fileNameNew + suffix);

                // 保存图片附件
                using (FileStream fs = System.IO.File.Create(filePath))
                {
                    // 复制文件
                    file.CopyTo(fs);
                    // 清空缓冲区数据
                    fs.Flush();
                }

            }
            return Ok("上传保存成功");
        }

 

才疏学浅,相关文档等仅供自我总结,如有相关问题可留言交流谢谢。

 

标签:文件,Ok,string,NetCore,接口,folderUrl,var,fileCollection,接收
From: https://www.cnblogs.com/mzflog/p/16806143.html

相关文章

  • 光纤接口必须要安装光模块吗?
    大家都知道工业交换机有光口和电口,一个工业交换机可以是全电口的,也可以是光口和电口自由组合的,那小编有的时候就会碰到客户问这样一个问题,你们家光纤接口有没有光模块的?为......
  • 接口中得static属性
    我们都知道子类继承父类的时候能继承父类的static属性修饰的方法,但是无法重写父类的static属性修饰的方法。  publicclassFather{publicstaticvoidsout(){......
  • 小程序封装请求接口数据方法
    第一步:先在util文件里新建index.js,写入以下代码。constbaseUrl='http://192.168.0.117:8080/SC_ncm'/***数据请求模块*接口地址http://daxun.kuboy.top/apido......
  • M12接口
    M12D型母头实拍图公头+母头Pin线序定义 M124PA型公插+RJ45  https://item.taobao.com/item.htm?id=615856257498M124PD型公插+RJ45  https://item.ta......
  • 项目接口实现
    项目接口实现后台主页模块接口由原型图可分析,后台首页需要轮播图接口,推荐课程接口软件开发模式瀑布模式如:bbs项目先设计数据库,等数据库全部设计完毕后,开始写项......
  • 今日内容,项目模块接口开发和解决跨域问题
    前台全局样式和js配置1.把前端默认样式统一去掉,自己写一个应用到项目中,自定义自己的前端样式2.后端接口的地址统一,方便以后修改1.1assets/css/global.css/*声明......
  • luffy之前后端的配置,跨域问题,后端轮播图接口
    一、前端全局配置和js配置#前端vue都会有默认的样式的我们可以把这些默认的样式可以取消掉然后按照没有样式的页面编写#我们可以写一个css取消样式然后在main.js......
  • JAVA 接口签名sign生成 工具类
    importorg.springframework.util.StringUtils;importjava.util.Map;importjava.util.Random;importjava.util.TreeMap;/***@Author:JCccc*@CreateTime:2018-10-30......
  • 路飞搜索功能接口和前端搜索页面搭建
    补充重要//this.$route.query是从?后面取值//this.$route.params是从路径中取值搜索接口设计views.py按课程名字搜索#按名字搜索接口设计classCo......
  • luffy创建数据库以及接口
    1创建Banner数据库由于此数据库中的时间,删除等可以共用,所以我们可以给他单独写一个表模型,最后使它不要在建数据库的时候给建到数据库里面,此段代码可共用,接下来我们继承Bas......