js前台:

 <input id="upload_img_input" v-on:change="onFileChange" type="file"  multiple/>

onFileChange(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length)return;
this.createImage(files);
},
createImage(file) {
if(typeof FileReader==='undefined'){
alert('您的浏览器不支持图片上传,请升级您的浏览器');
return false;
}
var image = new Image();
var vm = this;
var leng=file.length;
for(var i=0;i<leng;i++){
var reader = new FileReader();
reader.readAsDataURL(file[i]);
reader.onload =function(e){
vm.images=e.target.result;
};
}
}

1.上面代码将图片生成base64的字符串,该字符串以分号切割 例如这样的格式 "data:image/png;base64,iVBORw0KGgo.............."

该字符串的第一部分"data:image/png;base64" 是代表该Base64字符串对应的原始类型,第二部分是该文件生成的内容

2.在C#语言的后台 我们直接获取该字符串,并对其分割转化为图片,注意如不分割 FromBase64String 方法会报错,提示输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。所以我们只取第二部分的内容出来转化就好了,因为第一部分包含着文件格式

 public JsonResult PDUploadImage(string img)
{
string error = "";
SaveImage(@"C:\Users\JUNON37\Desktop\Pictures\123", img, ref error);
return Json("", JsonRequestBehavior.AllowGet);
}
private bool 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");
}
else if (img_array[].ToLower() == "data:image/png;base64")
{
bmp.Save(file_name + ".png");
}
else
{
error = "不支持该文件格式。";
return false;
} }
}
catch (Exception ex)
{
error = "生成图片发生错误。" + ex.ToString();
return false;
}
return true;
}

这样就好了

FromBase64String 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符的更多相关文章

  1. Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)

    Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...

  2. .net(c#) winform文本框只能输入数字,不能其他非法字符

    private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { //阻止从键盘输入键 ...

  3. php验证输入字符串中含有非法字符

    $pattern = "/(&|"|<|>|')+/";  preg_match($pattern, $media_name, $matches);  ...

  4. 注册许可证出现“输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非空白字符”

    问题描述: 引入失败!输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符.两个以上的填充字符,或者填充字符间包含非空白字符 解决方案: 去注册cloud7.0的产品,重新引入 ...

  5. C# 禁止在textBox输入框输入非法字符

    首先添加下面代码 //禁止在textBox输入框输入非法字符 private void keypressed(Object o, KeyPressEventArgs e) { if (e.KeyCha ...

  6. Java初学者作业——编写Java程序,实现判断所输入字符的类型(数字、小写字母、大写字母或其他字符)

    返回本章节 返回作业目录 需求说明: 编写Java程序,实现判断所输入字符的类型(数字.小写字母.大写字母或其他字符) 实现思路: 声明变量c,用于存储用户输入的字符. 通过Scanner接收用户输入 ...

  7. python基础练习题(题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数)

    day10 --------------------------------------------------------------- 实例017:字符串构成 题目 输入一行字符,分别统计出其中英 ...

  8. java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    package JingDian; import java.util.Scanner; public class charKind { public static void main(String[] ...

  9. 【Python3练习题 012】 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    ASCII 码表的对应值,知道 ord('a') 能将字符 'a' 转化为 ASCII 码表上对应的数值,就可以了.其中,数字 0-9 对应的码值为 48-57,大写字母 A-Z 对应 65-90,小 ...

随机推荐

  1. asm相关内容想下载(包括 jar 包)

    网址:http://download.forge.ow2.org/asm/

  2. 条件锁Condition

    """设计场景:timo先说一句,亚索再说一句timo: timo队长正在待命yasuo: 面对疾风吧timo: timo整装待发yasuo: 哈杀gay "& ...

  3. sort函数的用法(C++排序库函数的调用)

    对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了. (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c+ ...

  4. springboot静态资源

    https://blog.csdn.net/yali_aini/article/details/83213695 https://blog.csdn.net/sihai12345/article/de ...

  5. 对json 数据的处理

    今天一个任务是,从一个指定接口中获取 json 字符串,并将其中指定的数据,以列表的形式表示出来. 唯一注意:json 字符串,需要先转换成 json 对象. var  json对象= eval('( ...

  6. 题解【洛谷P6029】[JSOI2010]旅行

    题面 简化版题意:给出 \(n\) 个点 \(m\) 条边的无向图,可以交换任意两条边的权值 \(k\) 次,求 \(1\) 结点到 \(n\) 结点的最短路. 考虑\(\text{DP}\). 把所 ...

  7. JavaScript 运算,流程控制和循环

    算数运算符 算术运算符 描叙 运算符 实例 加 + 10 + 20 = 30 减 - 10 – 20 = -10 乘 * 10 * 20 = 600 除 / 10 / 20 = 0.5 取余数 % 返 ...

  8. 麦子html基础

    一.基础语法 1.基本结构

  9. python 请求服务器的本质

    不同路由请求不同内容 ''' 根据url中不同路径返回不同内容 ''' import socket sk=socket.socket() sk.bind(("127.0.0.1", ...

  10. ASP.NET + MVC5 入门完整教程二

    原文链接:https://blog.csdn.net/qq_21419015/article/details/80318046 从前端UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分 ...