首页 > 其他分享 >.Net Core WebApi 控制器自动创建文件夹上传图片

.Net Core WebApi 控制器自动创建文件夹上传图片

时间:2022-10-20 18:56:54浏览次数:48  
标签:WebApi Core 文件 FilePath WebRootPath env Net FolderPath 上传

 /// <summary>
        /// 异步图片或文件上传
        /// </summary>
        /// <param name="formFile"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<JsonResult> UploadPic(IFormFile formFile)
        {
            //定义文件夹路径
            var FolderPath = $"/UploadFile/{DateTime.Now.ToString("yyyyMMdd")}";

            //上传文件重命名 获取上传文件的扩展名
            var FilePath = $"/{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{Path.GetExtension(formFile.FileName)}";

            //如果 path 指向现有目录,则为 true;如果该目录不存在或者在尝试确定指定目录是否存在时出错,则为 false。
            if (!Directory.Exists($"{env.WebRootPath}{FolderPath}"))
                //创建新的指定目录
                Directory.CreateDirectory($"{env.WebRootPath}{FolderPath}");

            //using释放非托管资源 {env.WebRootPath}{FolderPath}{FilePath} 文件路径+文件名称
            //FileMode 指定操作系统打开文件的方式
            //OpenOrCreate指定操作系统应打开文件(如果文件存在);否则,应创建新文件
            using (FileStream fs = new FileStream($"{env.WebRootPath}{FolderPath}{FilePath}", FileMode.OpenOrCreate))
            {
                //异步获取文件内容
                await formFile.CopyToAsync(fs);
            }

            //返回图片的文件夹路径+名称
            return new JsonResult(new
            {
               FilePath = $"{FolderPath}{FilePath}"
            });
        }

标签:WebApi,Core,文件,FilePath,WebRootPath,env,Net,FolderPath,上传
From: https://www.cnblogs.com/LaoMa0109/p/16810912.html

相关文章

  • .net core中使用nlog替代默认日志
    1、添加引用nlog.config和Nlog.Web.AspNetCore 2、配置NLog配置文件<?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/......
  • DenseNet网络简述
    1.DenseNet网络DenseNet是指Denselyconnectedconvolutionalnetworks(密集卷积网络)。在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法。CNN史上的一个里程碑事件是......
  • .NET Core Onvif协议C#教程系列之XiaoFeng.Onvif组件库
        物联网IOT大背景下音视频领域的Onvif协议在2008年成为全球性的开放接口标准。   于是一批开发者涌入该技术领域使用各种编程语言对其改造升级封装。 ......
  • Kubernetes创建pod
    1创建tomcat的相关配置,配置tomcat的镜像和对外暴露的接口mkdir/usr/local/k8scd/usr/local/k8s/touchmytomcat.rc.yamltouchmytomcat.svc.yamlmytomcat.rc.ya......
  • Kubernetes单机安装
    Kubernetes单机安装1关闭Centos防火墙systemctldisablefirewalldsystemctlstopfirewalld2安装之前建议update一下保证yum是最新版本yumupdate3安装etcd......
  • 《Multi-scale 3D deep convolutional neural network for hyperspectral image class
    论文题目:《Multi-scale3Ddeepconvolutionalneuralnetworkforhyperspectralimageclassification》 论文作者:MingyiHe,BoLi,HuahuiChen论文发表年份:2017......
  • 字段加密实践(django-fernet-fields)
    一、fernet介绍Fernet用于django模型字段对称加密,使用crytography库。官网帮助文档1、先决条件django-fernet-fields支持Django1.8.2以及更高版本,Python2.7、3......
  • Kubernetes环境搭建
    一、在Kubernetes环境搭建过程中,会创建CA、admin、etcd等等证书,创建证书的过程中需要注意当前系统的时间,否则很可能因为生成证书时间同其他系统时间差别,造成证书验证失败。......
  • Net6 定时调度Quartz.AspNetCore(3.5.0)的使用
    十年河东,十年河西,莫欺少年穷学无止境,精益求精1、概述Quartz.Net是根据Java的Quartz用C#改写而来,Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数......
  • 【Kubernetes】K8s笔记(十):Service 解决服务发现的关键问题
    目录0.打造Service对象的动机1.Service的工作原理2.使用YAML描述Service3.在Kubernetes中使用Service4.以域名方式使用Service5.让Service对外暴露服务......