.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

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

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

(0)
上一篇 2022年4月22日 上午10:00
下一篇 2022年4月22日 上午10:00


相关推荐

  • Android应用开发揭秘-获取电话联系人及号码

    Android应用开发揭秘-获取电话联系人及号码}//以下为官网API注解ContactsContract.CommonDataKinds.Phone.TYPE联系人电话的类型,对应如下:TYPE_MOBILE:手机号码TYPE_HOME:住宅电话TYPE_WORK:公司电话}//以下为官网API注解ContactsContract.CommonDataKinds.Phon

    2022年6月3日
    37
  • B站视频资料汇总

    B站视频资料汇总前言B站个人空间:大大鹏I6将B站一些学习视频的课件,源码等资料的地址汇总在这篇博客,方便学习地址汇总北京理工大学嵩天教授的Python语言程序设计课程视频地址资料地址…

    2022年5月16日
    53
  • 深入浅出地理解机器人手眼标定

    深入浅出地理解机器人手眼标定所谓手眼系统,就是人眼镜看到一个东西的时候要让手去抓取,就需要大脑知道眼镜和手的坐标关系。如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就知道了。相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。在实际控制中,相机检测到目标在图像中的像素位置…

    2022年6月12日
    46
  • ViewGroup.LayoutParams 和 MeasureSpec

    ViewGroup.LayoutParams 和 MeasureSpec1.LayoutParams LayoutParams 是ViewGroup的内部静态类,ViewGroup的子类(如RelativeLayout,LinearLayout,FrameLayout)都有其对应的   ViewGroup.LayoutParams的子类,如RelativeLayoutParams LayoutParams的作用:指定视图View 的高度(heig…

    2022年7月17日
    16
  • .NET控件名称缩写一览表「建议收藏」

    .NET控件名称缩写一览表「建议收藏」.NET控件名称缩写一览表

    2022年4月24日
    45
  • 设计模式学习03—抽象工厂模式

    设计模式学习03—抽象工厂模式

    2021年11月30日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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