tnblog
首页
视频
资源
登录

.NET Core Base64上传图片

6761人阅读 2020/4/10 16:06 总访问:227130 评论:0 收藏:1 手机
分类: .NET Core
通用的图片上传工具类,直接上代码吧

图片转Base64可以看看剑哥

借鉴了剑哥的一些思路 https://www.tnblog.net/aojiancc2/article/details/2622


        /// <summary>
        /// 将base64转成图片
        /// </summary>
        /// <param name="Strbase64">base64数据</param>  
        /// <param name="Fileurl">文件存放路径存(/UploadFiles/模块)</param>
        /// <param name="FileSuffix">图片后缀(不存在则取base64类型后缀,如果base64头部不存在data:image/jpg(类型)返回空)</param> 
        /// <param name="Bol">是否默认盘(Fileurl否必填盘)</param>
        /// <param name="GuridFileName">图片名称(默认GUID生成)</param> 
        /// <returns></returns>
        /// D:\Code\WebManagers\Web\Ayhl\API\VideoManageApi\UploadFiles\
        public static string SaveImage(string Strbase64, string Fileurl, string FileSuffix, bool Bol = false, string GuridFileName = "")
        {
            try
            {
                if (GuridFileName == null || string.IsNullOrEmpty(GuridFileName))
                {
                    //使用GUID创建文件名称
                    GuridFileName = Guid.NewGuid().ToString().Replace("-", "");
                    //防止Guid重复加上时间秒
                    GuridFileName += DateTime.Now.Second;
                }

                //时间生成每日文件夹
                string FileName = DateTime.Now.ToString("yyyy-MM-dd");


                if (FileSuffix == null || string.IsNullOrEmpty(FileSuffix))
                {

                    if (Strbase64 != null && !string.IsNullOrEmpty(Strbase64))
                    {
                        var bte = Strbase64.Split("base64");

                        if (bte.Length > 1)
                        {
                            try
                            {
                                FileSuffix = bte[0].Split('/')[1].Replace(";", "");
                            }
                            catch (Exception ex)
                            {
                                return "";
                            }
                        }
                        else
                        {
                            return "";
                        }
                    }
                    else
                    {
                        return "";
                    }
                }

                //if (Fileurl == null || string.IsNullOrEmpty(Fileurl))
                //{
                //    Fileurl = $"//UploadFiles//VideoImages//{FileName}//{GuridFileName}.{FileSuffix}";
                //}

                if (Fileurl != null && !string.IsNullOrEmpty(Fileurl))
                {
                    if (Fileurl.Split('.').Length < 2)
                    {
                        Fileurl += "//" + FileName + "//" + GuridFileName + "." + FileSuffix;
                    }
                }

                string path = "";
                //是默认工作盘
                if (Bol)
                {
                    //获取应用程序的当前工作目录。 Directory.GetCurrentDirectory()
                    path = Directory.GetCurrentDirectory() + Fileurl;
                }

                //返回指定路径字符串的目录信息。Path.GetDirectoryName
                string filepath = Path.GetDirectoryName(path);

                // 如果不存在就创建file文件夹
                if (!Directory.Exists(filepath))
                {
                    if (filepath != null) Directory.CreateDirectory(filepath);
                }
                //使用正则表达式把所有类型的图片去掉前缀
                string base64img = Regex.Replace(Strbase64, "data:image/.*;base64,", "");

                byte[] photoBytes = Convert.FromBase64String(base64img);

                //创建一个新文件,将指定的字节数组写入该文件,然后关闭文件。如果目标文件已存在,则将覆盖它。
                File.WriteAllBytes(path, photoBytes);

                return Fileurl;

            }
            catch (Exception ex)
            {
                return "";
            }
        }
        
    有疑问留言哦


评价
若人生只如初见,愿还是相遇的那个下午,阳光明媚转身一笑便如春暖花开
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术