首页 > 其他分享 >NET5配合vue3图片上传

NET5配合vue3图片上传

时间:2022-09-06 09:13:43浏览次数:75  
标签:files string filePath 上传 ToString vue3 NET5 data

NET5配合vue3图片上传

后端函数

        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="files">文件流</param>
        /// <returns></returns>
        [HttpPost]
        public void FileSave(List < IFormFile > files)
        {
            //返回的文件地址
            List < string > filenames = new List < string > ();
            DateTime now = DateTime.Now;
            //文件存储路径
            string filePath = string.Format("/Uploads/{0}/{1}/{2}/", now.ToString("yyyy"), now.ToString("yyyyMM"), now.ToString("yyyyMMdd"));
            //获取当前web目录
            var webRootPath = "File/";;
            if (!Directory.Exists(webRootPath + filePath))
            {
                Directory.CreateDirectory(webRootPath + filePath);
            }
            try
            {
                foreach(var item in files)
                {
                    if (item != null)
                    {
                        #
                        region 图片文件的条件判断
                        //文件后缀
                        string fileExtension = Path.GetExtension(item.FileName);
                        //判断后缀是否是图片
                        const string fileFilt = ".gif|.jpg|.jpeg|.png";
                        if (fileExtension == null)
                        {
                            break;
                            //return Error("上传的文件没有后缀");
                        }
                        if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                        {
                            break;
                            //return Error("请上传jpg、png、gif格式的图片");
                        }
                        //判断文件大小
                        long length = item.Length;
                        if (length > 1024 * 1024 * 2) //2M
                        {
                            break;
                            //return Error("上传的文件不能大于2M");
                        }#
                        endregion
                        string strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
                        string strRan = Convert.ToString(new Random()
                            .Next(100, 999)); //生成三位随机数
                        string saveName = strDateTime + strRan + fileExtension;
                        //插入图片数据
                        using(FileStream fs = System.IO.File.Create(webRootPath + filePath + saveName))
                        {
                            item.CopyTo(fs);
                            fs.Flush();
                        }
                        filenames.Add(filePath + saveName);
                    }
                }
            }
            catch (Exception ex)
            {
                //这边增加日志,记录错误的原因
                //ex.ToString();
            }
        }
        

前端使用

handleUploadImage函数

files md插件已经获取到图片文件

async function handleUploadImage(_event: any, insertImage: any, files: any) {
  const file = files
  const formData = new FormData()
  for (var i = 0; i < file.length; i++) {
    formData.append('files', files[i])
  }
  await common.uploadImg(formData).then((res: any) => {
    insertImage({
      url: res.data,
      desc: files[0].name
      // width: 'auto',
      // height: 'auto',
    })
  })
}

axios uploadImg函数

  static async uploadImg(data: FormData) {
    return request({
      url: "/api/v1/common/upload-file",
      method: 'post',
      headers: { "Content-Type": "multipart/form-data" },
      data: data
    })
  }

axios 增加判断

if (config.method !== 'post' && config.headers['Content-Type'] !== 'multipart/form-data') {
      config.data = qs.parse(config.data);
    }

标签:files,string,filePath,上传,ToString,vue3,NET5,data
From: https://www.cnblogs.com/ouyangkai/p/16660455.html

相关文章

  • vue2进阶vue3环境搭建
    一、cli升级sudocnpminstall-g@vue/cli二、查看版本vue--version 目前最新为 @vue/cli5.0.8 vue/cli要4.0以上的版本才有创建vue3的模版 三、升级node......
  • vue3项目-小兔鲜儿笔记-商品详情页02
    1.SKU和SPU概念SPU代表一个商品,这个商品可以拥有很多属性SKU代表这个商品可选规格的任意组合,是库存单位唯一标识 2.路径字典大致步骤根据后台返回的sku数据得......
  • vue3+ts 为原型上添加属性声明
    背景比如在vue2的情况下我们有的时候需要为Vue的原型对象上添加属性或方法,vue3的情况下需要为app挂载全局属性配置,但是结合了ts后,在vue文件中会报警告,但是程序可以正常被......
  • git上传项目完整步骤
    具体步骤gitconfig--globaluser.nameytgitconfig--globaluser.name2214100039@qq.comgitinitgitremoteaddoriginhttps://gitee.com/ytao99/data-structu......
  • vue3之composition-api的使用(包含watch watchEffect)
    是什么composition-api官方介绍vue2:options-api,组件按照选项组织,就是将组件各个部分严格写在methods、computed、watch、data等等里面(特定的区域写特定的代码);vue3:co......
  • 百度ueditor粘贴word图片且图片文件自动上传功能
    ​项目需求可发布文章需求涉及到富文本编辑器经过查阅我选择了较为简便不需要后端支持可独立完成的tinymce框架官方文档也是相当完整虽然都是全英文但是有强大的谷......
  • vue3 组件-动画进度条
    https://kuangyx.cn/docs/文章/vue3组件/进度条.html......
  • vue3 组件-通知菜单
    https://kuangyx.cn/docs/文章/vue3组件/通知菜单.html......
  • vue3 组件-表格分页
    typescript类型提示(属性、方法、el-table与el-pagination自带ts类型)json配置el-table控制栏自定义单元格编辑编辑行自动请求接口接口请求参数与响应数据路径......
  • vue3 组件-开始结束日期选择器
    https://kuangyx.cn/docs/文章/vue3组件/时间选择.html......