.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)


相关推荐

  • Linux驱动基础开发

    Linux驱动基础开发来源:http://www.linuxidc.com/Linux/2011-10/44721.htmLinux设备驱动概述目前,Linux软件工程师大致可分为两个层次:(1)Linux应用软件

  • 求两个向量的夹角_数量积和向量积的公式

    求两个向量的夹角_数量积和向量积的公式如图所示,我们要计算任意两个向量之间的夹角。(图中的坐标数字是估计值,随手给定)python代码如下importmathAB=[1,-3,5,-1]CD=[4,1,4.5,4.5]EF=[2,5,-2,6]PQ=[-3,-4,1,-6]defangle(v1,v2):dx1=v1[2]-v1[0]dy1=v1[3]-v1[1]dx2=v2[2]-v2[…

  • 网络编程的三个重要信号(SIGHUP ,SIGPIPE,SIGURG)[通俗易懂]

    网络编程的三个重要信号(SIGHUP ,SIGPIPE,SIGURG)[通俗易懂]  对于信号的介绍,我再前面的一篇博客中做过专门的总结,感兴趣的可以看看。本文主要介绍在网络编程中几个密切相关的函数:SIGUP,SIGPIPE,SIGURG。SIGHUP信号  在介绍SIGHUP信号之前,先来了解两个概念:进程组和会话。进程组  进程组就是一系列相互关联的进程集合,系统中的每一个进程也必须从属于某一个进程组;每个进程组中都会有一个唯一的ID(process…

  • 相位式激光测距法中相位产生原理「建议收藏」

    相位式激光测距法中相位产生原理「建议收藏」相位式激光测距原理深入解析

  • 使用activiti总结–bpmn画流程图

    节期结束,赶紧总结一下前几天使用的Activiti工作流的一些方法简单介绍一下Activiti:Activiti一套完整的方便的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。开发人员可以通过插件直接绘画出业务。开发工具:IDEA画流程图插件:actiBPM(在IDEA插件管理中安装就可以了)BPMN…

  • Anti SQL Inject

    Anti SQL Inject

发表回复

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

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