C# base64 解码转换文件工具类

此篇博客介绍了如何使用C#实现Base64编码的字符串解码并转换为文件和图片。Base64ToOriFile方法用于将Base64编码的文件内容写入指定路径,Base64ToImage则处理图片的解码并将结果保存为本地文件。
摘要由CSDN通过智能技术生成

using

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

base64解码转文件

/// <summary>
/// base64 解码转文件
/// </summary>
/// <param name="base64Str">文件base64编码</param>
/// <param name="outPath">生成文件路径</param>
public static void Base64ToOriFile(string base64Str, string outPath)
{
	var contents = Convert.FromBase64String(base64Str);
	using (var fs = new FileStream(outPath, FileMode.Create, FileAccess.Write))
	{
		fs.Write(contents, 0, contents.Length);
		fs.Flush();
	}
}

base64解码转图片

/// <summary>
/// base64 解码转图片
/// </summary>
/// <param name="base64Str"></param>
/// <param name="path"></param>
/// <param name="imgName"></param>
/// <returns></returns>
public static string Base64ToImage(string base64Str, string path, string imgName)
{
	// 声明一个string类型的相对路径
	string filename = "";
	// 取图片的后缀格式                                                                   
    string hz = base64Str.Split(',')[0].Split(';')[0].Split('/')[1];
    // base64Str为base64完整的字符串,先处理一下需要的字符串               
	string[] str = base64Str.Split(',');            
    byte[] imageBytes = Convert.FromBase64String(str[1]);
    // 读入MemoryStream对象
    MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);             
    memoryStream.Write(imageBytes, 0, imageBytes.Length);
    // 所要保存的相对路径及名字
    filename = path + imgName + "." + hz;
    // 获取程序根目录
    string tmpRootDir = path;         
    if (!Directory.Exists(tmpRootDir))
    {
    	Directory.CreateDirectory(tmpRootDir);
	}
	// 转换成绝对路径
    string imagesurl2 = tmpRootDir + imgName + "." + hz;
    // 转成图片
    Image image = Image.FromStream(memoryStream);
    // 图片名称
    string iname = DateTime.Now.ToString("yyMMddhhmmss");
    // 将图片存到本地
    image.Save(imagesurl2);     
    return filename;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热血码农ZL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值