.netcore 文件上传转为base64位字符串

.netcore 文件上传转为base64位字符串.netcore 文件上传转为base64位字符串

大家好,又见面了,我是你们的朋友全栈君。

  .netcore文件上传Api接口,和正常的webForm提交类似,只是用postman测试接口时,记得给form表单命名,否则获取上传文件数量一直为0

  后端代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using MyApiCommon;

namespace MyApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class FileController : ControllerBase
    {

        [HttpPost]
        [Route("postfile")]
        public string UploadAsync()
        {
            try
            {
                var files = HttpContext.Request.Form.Files;
                if (files.Count < 0)
                    return "请上传文件";
                long fileSize = files.Sum(f => f.Length) / 1024;//由字节转为kb
                Stream fs = files[0].OpenReadStream();//将文件转为流
                return Base64Convert.FileToBase64(fs);

            }
            catch (Exception ex)
            {
                return ex.Message;
            }


        }
    }
}

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;


namespace MyApiCommon
{
    public class Base64Convert
    {
        /// <summary>
        ///  文件转换成Base64字符串
        /// </summary>
        /// <param name="fs">文件流</param>
        /// <returns></returns>
        public static String FileToBase64(Stream  fs)
        {
            string strRet = null;

            try
            {
                if (fs == null) return null;
                byte[] bt = new byte[fs.Length];
                fs.Read(bt, 0, bt.Length);
                strRet = Convert.ToBase64String(bt);
                fs.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return strRet;
        }

        /// <summary>
        /// Base64字符串转换成文件
        /// </summary>
        /// <param name="strInput">base64字符串</param>
        /// <param name="fileName">保存文件的绝对路径</param>
        /// <returns></returns>
        public static bool Base64ToFileAndSave(string strInput, string fileName)
        {
            bool bTrue = false;

            try
            {
                byte[] buffer = Convert.FromBase64String(strInput);
                FileStream fs = new FileStream(fileName, FileMode.CreateNew);
                fs.Write(buffer, 0, buffer.Length);
                fs.Close();
                bTrue = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return bTrue;
        }
    }
}

  使用postman测试上传

.netcore 文件上传转为base64位字符串

 

转载于:https://www.cnblogs.com/personblog/p/10963594.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106791.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mapper.xml作用_mapper foreach

    mapper.xml作用_mapper foreach今天测试mybatis接口时遇到一个小问题,花了好长时间Failedtoinstantiate[org.apache.ibatis.session.SqlSessionFactory]:Factorymethod’sqlSessionFactory’threwexception;nestedexceptionisorg.springframework.core.NestedIOException:Failedtoparsemappingresource:’file[E

  • 2021数模美赛A题翻译及思路

    2021数模美赛A题翻译及思路A题懒得看了,不占坑了,可以去看看我EF的思路(还在占坑)问题A:菌类2021美赛A题思路。2021美赛A题解法。2021美赛思路,2021美赛数学建模思路,欢迎加入秀儿为你弹奏东风破:752899821碳循环描述了整个地球地球化学循环中碳交换的过程,是地球生命的重要组成部分。碳循环的一部分包括化合物的分解,使碳得以更新并以其他形式使用。该过程的这一部分的关键组成部分是植物材料和木质纤维的分解。分解木质纤维的一些关键因素是真菌。最近关于真菌通过木材分解的研究文章的作者确定了决定分解速率的真菌性状,并

  • SOAPAction是什么?

    SOAPAction是什么?SOAPAction是什么?最近在工作中遇到一个SOAPAction的问题,正好拿出来研究一把。  据说SOAPActionheader这玩意在SOAP1.1规范中着实让不少开发者喝了一壶。真的有这么难理解么?我想这应该是因为SOAP有两种非常不同的使用方式,而SOAPAction主要是被用来支持其中应用较少的一种方式的原因。在我看来,这种方式也非常有价值。  让我们先看看S

  • win10打印服务无法启动(运行时错误automation)

    这是3/11号遇到的问题,微软更新了一个叫KB5009543的补丁之后,电脑的打印功能就一直打印不了,刚开始检查以为打印机脱机或者驱动没安装,检查之后发现毫无作用,还是提示操作无法完成。到电脑控制面板-打印机设备查看所有连接过的打印机都是灰色的。我的解决方案:1、卸载掉所有kb5开头的补丁。2、运行输入services.msc按回车找到打印服务,重新启动打印服务程序。3、找到电脑C磁盘,C:\Windows\System32\spool找到这个路径下,把里面文件全部删掉。3,重新安装一遍对

  • spring aop实例讲解_abaqus实例详解pdf

    spring aop实例讲解_abaqus实例详解pdfSpringAOP原理详解及实例1.SpringAOP简介在软件业,AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻…

  • stm32cubemx软件库_STM32cube

    stm32cubemx软件库_STM32cube前言:本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用在我们的HAL库中,对硬件SPI函数做了很好的集成,使得之前SPI几百行代码,在HAL库中,只需要寥寥几行就可以完成那么这篇文章将带你去感受下它的优异之处,这些优异的函数,也正是HAL库的优点所在所用工具:1、芯片:STM32F103ZET62、STM32CubeMx软件3、IDE:…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号