基于.net core 七牛云上传多图片

news/2024/11/20 1:34:11/文章来源:https://www.cnblogs.com/mxfenfei/p/18197280

一、基于.net core 七牛云上传图片上传

  1. 创建七牛云账号,链接:https://portal.qiniu.com/home

  2. 新建空间(可以选择华北,可设置公开或私有(公开返回前台不需要token))

  1. 单图片上传

    /// <summary>
    /// 上传文件
    /// </summary>
    /// <param name="file"></param>
    /// <returns></returns>
    [HttpPost] // 指定该方法处理 HTTP POST 请求
    public async Task<IActionResult> UploadImages(IFormFile file) // 定义一个异步方法,接收一个文件类型的参数
    {if (file == null || file.Length == 0) // 检查文件是否为空或文件大小{return BadRequest("文件不能为空"); }string saveKey = "Pic/" + file.FileName; // 设置上传文件保存的路径和文件名,可以随便输入 不用创建可自动生成string bucket = "空间管理的名称"; // 七牛云存储空间名称   七牛云仓库名称Mac mac = new Mac("AK", "SK"); // 替换为您七牛云账号的访问密钥和密钥// 设置上传策略PutPolicy putPolicy = new PutPolicy();putPolicy.Scope = bucket + ":" + saveKey; // 设置 Scope 为具体的文件路径,即指定存储空间和保存路径// 创建上传凭证string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString()); // 生成上传凭证,凭证包含了上传策略信息// 配置上传管理器Config config = new Config();config.Zone = Zone.ZONE_CN_North; // 设置上传区域,这里是华北区域   自己选的区域,这个是华北,别的自己搜一下config.UseHttps = true; // 使用 HTTPS 进行上传config.UseCdnDomains = true; // 使用 CDN 域名加速上传config.ChunkSize = ChunkUnit.U512K; // 设置分块上传的块大小// 实例化表单上传对象FormUploader target = new FormUploader(config);// 上传文件HttpResult result = target.UploadStream(file.OpenReadStream(), saveKey, token, null); // 调用上传方法,上传文件流,传入保存路径和上传凭证// 检查上传结果if (result.Code == 200) // 判断上传是否成功(返回状态码200表示成功){            return Ok(file.FileName); // 返回200响应,上传成功,返回文件名}else{return BadRequest("上传失败:" + result.Text); // 如果上传失败,返回400错误响应,包含错误信息}
    }
  2. 多图片上传

     /// <summary>/// 多图片上传/// </summary>/// <param name="fileser"></param>/// <returns></returns>/// <exception cref="Exception"></exception>[HttpPost]public List<Object> UploadQiniu([FromForm(Name = "file")] List<IFormFile> fileser){Mac mac = new Mac("AK", "SK"); // 替换为您七牛云账号的访问密钥和密钥PutPolicy putPolicy = new PutPolicy();putPolicy.Scope = "空间管理的名称";//图片存放七牛云地址string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString()); // 生成上传凭证,凭证包含了上传策略信息IFormFileCollection files = Request.Form.Files;Config config = new Config(){Zone = Zone.ZONE_CN_North,//默认华北 根据选择的不同输入不同的地区UseHttps = true};config.UseCdnDomains = true; // 使用 CDN 域名加速上传var res = Request.Form.ToArray();FormUploader upload = new FormUploader(config);HttpResult result = new HttpResult();List<Object> list = new List<Object>();foreach (IFormFile file in fileser)//获取多个文件列表集合{if (file.Length > 0){var _fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');var _qiniuName =   "Pic/" + DateTime.Now.ToString("yyyyMMddHHmmssffffff")  + file.FileName;//重命名文件加上时间戳Stream stream = file.OpenReadStream();result = upload.UploadStream(stream, _qiniuName, token, null);if (result.Code == 200){list.Add(new { fileName = _fileName, qiniuName = _qiniuName, uploadTime = DateTime.Now });}else{throw new Exception(result.RefText);//上传失败错误信息}}}return list;}
  3. 其中AK和SK的位置

  1. 然后就可以测试了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707633.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop集群配置免密SSH登录方法

K8s集群配置免密ssh登录 K8S集群包含1个主节点和2个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法。 一、K8s集群环境 二、免密登录原理 每台主机authorized_keys文件里面包含的主机(ssh密钥),该主机都能无密码登录,每台主机的authorized_keys文件里面…

element-ui里选择器select多选

select默认情况下都是单选(如上图),但有时候就需要多选,那就需要添加multiple属性,但这样的话数据会一直叠加,把选择框撑大,如下图:这样的话需要添加 collapse-tags 属性将它们合并为一段文字,效果如下:但如果选多了,清除会不方便,那样的话需要添加clearable属性,…

Oracle11g-EXP-00091错误

环境说明 oracle 11g win10 问题情况 在终端中exp导出数据库时,遇到报错“EXP-00091”,按照网上教程修改NLS_LANG但是没有效果。最终原因 在power中设置环境变量NLS_LANG的方法与CMD不一样。 备注记录 先通过服务端查询编码集 select * from nls_database_parameters t where…

Python03判断语句

Python03判断语句 比较运算符if语句

统一文件传输平台如何建设 才能实现文件传输受管、可控、高效?

统一文件传输平台是为了满足企业或组织在不同网络区域间安全、高效地传输文件的需求而设计的系统。这样的平台通常具备以下特点: 1、跨区域传输能力:支持在不同地理位置的分支机构或数据中心之间传输文件。 2、安全性:提供加密传输、用户认证、权限控制等安全特性,确保数据…

基于Vue3水印组件封装:防篡改守护!

基于Vue 3的全新水印通用组件封装。这款组件不仅功能强大,而且易于集成,能够轻松为您在网页任何位置添加自定义水印,有效防止内容被篡改或盗用。基于Vue 3的全新水印通用组件。这款组件不仅功能强大,而且易于集成,能够轻松为您的网页或应用添加自定义水印,有效防止内容被…

在线Base64转文件、文件转Base64工具

在线Base64转换神器,一键实现Base64编码与文件互转!支持图片、文档等各类文件,快速准确,安全无服务器存储。拖拽上传,轻松编码解码,提升开发效率。跨平台兼容,移动端友好,让数据转换再无障碍。在线Base64转文件、文件转Base64工具

怎样统一、高效地实现百台以上的机台设备文件导出?

许多高端制造企业的运转都以机台为基础,如光学仪器制造及研究,晶圆制造,医学设备等,而大型的高端制造业不仅配备机台设备,同时数量也会非常客观,会达到上百台,当企业扩充规模,设立分公司和厂区时,机台设备甚至可达上千台,此时,对于企业而言,机台设备文件导出就会变…

Docker 部署Nacos

1、创建Nacos目录 mkdir /home/docker/nacos2、创建Nacos日志目录 mkdir /home/docker/nacos/logs3、创建Nacos配置目录 mkdir /home/docker/nacos/conf4、创建数据库 /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (…

Python数据分析与挖掘实战(1-3章)

非原创,仅个人关于《Python数据分析与挖掘实战》的学习笔记第一章 基础 略 第二章 数据分析简介 基本概念 元组、列表、字典、集合 函数式编程:map()函数:定义一个函数,然后用map()逐一应用到map列表中的每个元素。map(lambda x+2:a) reduce()函数:用于递归计算。reduce(l…

ASP.NET Core Web中使用AutoMapper进行对象映射

前言 在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂、庞大的时候还容易出现错误。为了解决这个问题,对象映射库就随之而出了,这些库可以自动完成对象之间的…

Socket层

【一】什么是socketSocket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。所以,我们无需深…