.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 ...
随机推荐
- RC1015 cannot open include file 'atlres.h'
fatal error RC1015: cannot open include file 'atlres.h' 问题:此问题是由于rc文件没有找到 atlres.h导致的 (原因不详) 解决:工程 ...
- Spring杂记BeanFactory之getBean方法
1.(BeanFactory) getBean(beanName) 2.(AbstractBeanFactory) doGetBean 3.(AbstractBeanFactory) transfor ...
- 带分页功能的SSH整合,DAO层经典封装
任何一个封装讲究的是,使用,多状态.Action: 任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...
- 通过反射实现IOC功能
这段时间园子里有不少介绍IOC组件的文章,由于自己也一直在学习IOC的各种组件,及IOC的思想,常见的IOC组件很多:AutoFac.Ninject.Utity包括.NET自带的MEF等.由于今天周六 ...
- leetcode — merge-k-sorted-lists
import java.util.ArrayList; import java.util.List; import java.util.PriorityQueue; /** * Source : ht ...
- [TensorFlow] Introducing TensorFlow Feature Columns
Welcome to Part 2 of a blog series that introduces TensorFlow Datasets and Estimators. We're devotin ...
- php防止刷流量攻击
<?php //查询禁止IP $ip =$_SERVER['REMOTE_ADDR']; $fileht=".htaccess2"; if(!file_exists($fil ...
- Java基础之基本数据类型
前言:Java内功心法之基本数据类型,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 变量就是申请内存来存储值.也就是说,当创建变量的时候,需 ...
- #8 Python数学方法
前言 前几节了解了Python的不同数据类型,有小伙伴会问,不同的数据类型之间是否可以相互转换?肯定是可以的,本篇博文主要记录数字类型的转换,其他类型的相互转换会在下几节记录,Here we go! ...
- 前后端分离demo 旅馆管理系统
模型设计 旅馆管理系统,主要涉及到登记入住,退房以及客房和客人信息管理:经过分析抽像出涉及到的实体以及各实体之间的关系: 可以看出整个业务以客房为中心,入住,退房,定价,收费都是以客房为基本单 ...