首页

文章

前端将图片转换为base64位,使用ajax传递到后台,但是图片经过base64转换成字符串后非常长,无法使用ajax

发布网友 发布时间:2022-04-19 12:44

我来回答

5个回答

热心网友 时间:2023-10-24 23:29

前端JS
var reader = new FileReader();
reader.onload = function (e) {
//图片base64数据
var imgBase64Data = e.target.result;
var pos = imgBase64Data.indexOf("4")+2;
imgBase64Data = imgBase64Data.substring(pos, imgBase64Data.length - pos);//去掉Base64:开头的标识字符
$.ajax({
type: "POST",
url: "http://imginapi.com/image/AddImage",
async: false,
xhrFields: { withCredentials: true },
data: { 'base64StrImgData': imgBase64Data, 'imgFormat': fileext},
dataType: "text",
success: function (data) {
alert(data);
domUtils.on(iframe, 'load', callback);
},

error: function (err) {
alert("error");
alert(err.responseText);
}

});
return;

};
reader.readAsDataURL(input.files[0]);

后台C#代码:
/// <summary>
/// 图像转换为Base64编码
/// </summary>
/// <param name="image">图像</param>
/// <param name="format">图像格式</param>
/// <param name="throwException">出现异常时是否抛出</param>
/// <returns>转换成功返回其Base64编码;失败返回空串</returns>
public static string ImageToBase64(System.Drawing.Image image, ImageFormat format, OPResult opRes, bool throwException = false)
{
return ExceptionHelper.ExceptionRecord(() =>
{
string base64String = "";
try
{
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
base64String = Convert.ToBase64String(imageBytes);
}
}
catch (Exception ex)
{
throw new Exception("将图片转成base64字符串时出现异常:" + ex);
}

return base64String;
}, opRes, throwException);
}

热心网友 时间:2023-10-24 23:30

前端生成的代码最终格式如下:

data:image/png;base64,xxxxxxxxxx...........

后端这样解码

base64=base64.Replace("data:image/png;base64,", "");

byte[] bytes =Convert.FromBase64String(base64);

MemoryStream memStream = new MemoryStream(bytes);

BinaryFormatter binFormatter = new BinaryFormatter;

return(System.Drawing.Image)binFormatter.Deserialize(memStream);

string base64Str = "图片的BASE64字符串";

byte[] bytes = System.Convert.FromBase64String(base64Str);

using (System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes))

{return System.Drawing.Image.FromStream(ms);}

ajax({,url : form.action,,type : "POST",,data : formData,

dataType:"text",,processData : false,,success:function(data).window.location.href="${ctx}"+data;

xhr:function//在jquery函数中直接使用ajax的XMLHttpRequest对象

var xhr = new XMLHttpRequest

xhr.upload.addEventListener

热心网友 时间:2023-10-24 23:30

如果你用的是tomcat 报request header too large 的错,就在tomcat的config/server.xml里设置最大头大小

热心网友 时间:2023-10-24 23:31

非得用ajax吗

热心网友 时间:2023-10-24 23:31

有一别人的解决类似情况的链接,也许对你有帮助:

ajax的post提交参数长度超出*的解决办法

可以看看是否有帮助。如果有需要,请继续交流(有段时间没有用ajax之类的东西了,有些生疏)。谢谢

玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 post的参数传递长度有限制吗 404 Not Found jquery ajax post 参数有长度限制吗 post和get的区别 post和get的区别? POST字符大小限制如何解决 HTTP请求的长度限制是多少? http get和post请求提交参数有没有长度限制 关于浏览器post请求长度的问题 GET/POST 请求参数长度的最大值 http post请求提交参数没有长度限制吗 Post 提交,参数长度有限制吗 用阿里小号发短信能查到主号码吗 关于春节的传说有哪些 关于春节传说故事 200字 关于春节的传说和习俗 两个关于春节的神话传说 春节传说的故事有哪些? 关于新年的传说或故事 关于春节的神话传说 httpclient post请求有大小限制吗 GET和POST可传递的值到底有多大 Get请求和Post请求有何区别? post或get方式提交数据数量及长度有限制吗? https请求的post接口对数据的大小有限制吗 httpclient怎么设置post请求长度 被阿里通短信骚扰 能查出是谁吗?急 苹果4s通讯里没用导入sim卡为什么,求大神在线等 小学生作息时间表 怎样合理安排小学作息时间? 最合理的小学生作息时间表 小学生一天在学校上课的时间是多少? 如果孩子有假期,我们又该怎么给孩子合理的安排假期呢? 世界上小学生最健康的作息时间表 小学生假期从早到晚的作息时间表怎么做 一年级的学生如何安排一天的作息时间 孩子的作息时间大家都是怎么安排的 小学生日常作息时间表 小学生五年级周末作息时间表,怎么安排比较合理? 小学生的作息时间表。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com