.NET MVC 后台接受base64的上传图片
#region 配合前端的多张图片上传
#region 上传图片方法
/// <summary>
/// 接口方法
/// </summary>
/// <param name="img">带 data:image/jpeg;base64,的base64的图片</param>
/// <returns>图片路径</returns>
[HttpPost]
public ActionResult GETaddimg2(String img)
{
if (img == null)
{
return Json("空");
}
else
{
return Json(PDUploadImage(img), JsonRequestBehavior.AllowGet);
}
}
#endregion
#region 图片转化
/// <summary>
/// base64 的字符串
/// </summary>
/// <param name="img"></param>
/// <returns>图片转成32的名字</returns>
public JsonResult PDUploadImage(string img)
{
string error = "";
return Json(SaveImage("/Upload/Article", img, ref error), JsonRequestBehavior.AllowGet);
}
#endregion
#region 截取data:image/jpeg;base64,提取图片,并保存图片
/// <summary>
/// 截取data:image/jpeg;base64,提取图片,并保存图片
/// </summary>
/// <param name="file_name"></param>
/// <param name="img_string">base64的字符串</param>
/// <param name="error">错误的图片格式</param>
/// <returns>路径 + 图片的名称</returns>
private string SaveImage(string file_name, string img_string, ref string error)
{
//try
//{
string[] img_array = img_string.Split(',');
byte[] arr = Convert.FromBase64String(img_array[]);
using (MemoryStream ms = new MemoryStream(arr))
{
Bitmap bmp = new Bitmap(ms);
if (img_array[].ToLower() == "data:image/jpeg;base64")
{
bmp.Save(file_name + ".jpg");
return SetImg(Guid.NewGuid().ToString().Replace('-', 'p').Substring(), "jpg", arr);
}
else if (img_array[].ToLower() == "data:image/png;base64")
{
bmp.Save(file_name + ".png");
return SetImg(Guid.NewGuid().ToString().Replace('-', 'p').Substring(), "png", arr);
}
else if (img_array[].ToLower() == "data:image/gif;base64")
{
bmp.Save(file_name + ".gif");
return SetImg(Guid.NewGuid().ToString().Replace('-', 'p').Substring(), "gif", arr);
}
else
{
error = "不支持该文件格式。";
return "错";
}
}
//}
//catch (Exception ex)
//{
// error = "生成图片发生错误。" + ex.ToString();
// return "错";
//}
}
#endregion
#region 保存图片路径及设置名称
/// <summary>
/// 保存到文件路径
/// </summary>
/// <param name="ImgName">保存的文件名称</param>
/// <param name="suffix">后缀名</param>
/// <param name="arr">base64</param>
/// <returns>图片的路径</returns>
public string SetImg(string ImgName, string suffix, byte[] arr)
{
string str3 = System.AppDomain.CurrentDomain.BaseDirectory;//找到相对路径
string str4 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//找到相对路径
System.IO.File.WriteAllBytes(str3 + "/Upload/Article/" + ImgName + "." + suffix + "", arr);
return "/Upload/Article/" + ImgName + "." + suffix + "";
}
#endregion
#endregion
.NET MVC 后台接受base64的上传图片的更多相关文章
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
EF+LINQ事物处理 在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...
- from表单中checkbox的多选,ajax转入后台,后台接受
var check = [];//定义一个空数组 $("input[name='category']:checked").each(function(i){//把所有被选中的复选框 ...
- jsp与spring mvc后台controller间参数传递处理之总结
在编程过程中,最容易出现问题及卡壳的地方,往往是各层之间接缝处,接缝处往往存在着各种各样的参数传递,数据转换和格式化,参数很好的传递并正确接收过来之后就是复杂逻辑之间的处理了,所以为了避免多种问题占用 ...
- MVC -- 后台RedirectToAction传递实体类与字符串
1.MVC -- 后台RedirectToAction传递实体类 RedirectToAction(控制器,控制器方法,实体类) 2.MVC -- 后台RedirectToAction传递字符串 Re ...
- MVC后台传dt数据
//MVC后台传dt数据 public JsonResult TeacherVoteInfo([FromBody]Teacher_VoteModel model) { string tname = m ...
- 后台接受ajax传递值的实例代码
后台接受ajax传递值的实例代码: 使用ajax可以实现无刷新数据交互,下面是一段后台代码接收ajax传递值的实例代码供需要的朋友参考,希望能够带来帮助. ajax代码如下: $(function ( ...
- ASP.NET MVC 后台接收集合参数和 jquery ajax 传值
MVC 接收参数数组(集合) 示例样本: public class Person { public string FirstName { get; set; } publi ...
- 序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台 今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...
- Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本)
Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本) 原创 2016年07月22日 10:33:51 23125 6月随着.NET COR ...
随机推荐
- Android应用系列:双击返回键退出程序
前言 有一个很古老的应用技巧,一直被各种大大小小的app用得乐此不疲,那就是双击返回键退出程序.今天就写写它的实现代码,非常简单而且实用. 正文 双击返回键退出程序,一般有两种实现思路,一种是用一个布 ...
- 无源码调试smali
0x01 工具①Android Studio最新版.(用的1.5)②apktool尽量使用最新版的.(反编译本人用baksmali-2.1.3.jar)③smalidea插件.下载地址https ...
- Oracle的数据并发与一致性详解(下)
上篇介绍了数据并发与一致性的相关概念.以及oracle的事务隔离级别等内容,本篇继续介绍锁机制.自动锁.手动锁.用户自定义锁的相关内容. 请尊重作者劳动成果,转载请标明原文链接: https://ww ...
- 细说spring事务配置属性
一.spring事务配置 1.spring配置 在配置数据源的下方配置 <!-- 事务配置 --> <bean id="transactionManager" c ...
- SSE图像算法优化系列二:高斯模糊算法的全面优化过程分享(一)。
这里的高斯模糊采用的是论文<Recursive implementation of the Gaussian filter>里描述的递归算法. 仔细观察和理解上述公式,在forward过程 ...
- google 身份验证器
谷歌身份验证器原理 就是服务器与客户端算法相同
- 光盘作为yum源
1.挂载光盘 mkdir /media/cdrom //在/media下建立cdrom目录,默认情况是没有的 mount /dev/cdrom /mnt/cdrom2.进入 /etc/y ...
- MySQL事务笔记
1.结束事务的方法用什么? 2.事务的最终形态是什么? commit 提交 rollback 回滚 3.事务的四大特征? ⑴ 原子性 一个事务是最小的工作单元,事务包含的所有操作要么全部成功,要么全部 ...
- c# 过滤html
public static string StripHTML(string html) { try { System.Text.RegularExpressions.Regex regex1 = ne ...
- webAPI文件上传时文件过大404错误的问题
背景:最近公司有个需求,外网希望自动保存数据到内网,内网有2台服务器可以相互访问,其中一台服务器外网可以访问,于是想在 这台服务器上放个中转的接口.后来做出来以后测试发现没有问题就放线上去了,不顾发现 ...