
- 通用的图片上传工具类,直接上代码吧
-
- 图片转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 "";
- }
- }
-
- 有疑问留言哦
评价
排名
16
文章
53
粉丝
7
评论
13
点击input弹出table数据表格
剑轩 : 点赞!~
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术