最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

jst将base编码的图片转换为file并提交

来源:动视网 责编:小采 时间:2020-11-27 20:29:07
文档

jst将base编码的图片转换为file并提交

jst将base编码的图片转换为file并提交:直接提交base编码图片数据,过大的话后台会出现转发错误问题。一个不错的解决方式就是将base编码的图片数据转换为Blob(与File相似)并添加到form中提交。下面是代码:/** * @param baseCodes * 图片的base编码 */ function su
推荐度:
导读jst将base编码的图片转换为file并提交:直接提交base编码图片数据,过大的话后台会出现转发错误问题。一个不错的解决方式就是将base编码的图片数据转换为Blob(与File相似)并添加到form中提交。下面是代码:/** * @param baseCodes * 图片的base编码 */ function su


直接提交base编码图片数据,过大的话后台会出现转发错误问题。
一个不错的解决方式就是将base编码的图片数据转换为Blob(与File相似)并添加到form中提交。下面是代码:

/**
 * @param baseCodes
 * 图片的base编码
 */
function sumitImageFile(baseCodes){
 var form=document.forms[0];
 
 var formData = new FormData(form); //这里连带form里的其他参数也一起提交了,如果不需要提交其他参数可以直接FormData无参数的构造函数
 
 //convertBaseUrlToBlob函数是将base编码转换为Blob
 formData.append("imageName",convertBaseUrlToBlob(baseCodes)); //append函数的第一个参数是后台获取数据的参数名,和html标签的input的name属性功能相同
 
 //ajax 提交form
 $.ajax({
 url : form.action,
 type : "POST",
 data : formData,
 dataType:"text",
 processData : false, // 告诉jQuery不要去处理发送的数据
 contentType : false, // 告诉jQuery不要去设置Content-Type请求头
 
 success:function(data){
 window.location.href="${ctx}"+data;
 },
 xhr:function(){ //在jquery函数中直接使用ajax的XMLHttpRequest对象
 var xhr = new XMLHttpRequest();
 
 xhr.upload.addEventListener("progress", function(evt){
 if (evt.lengthComputable) {
 var percentComplete = Math.round(evt.loaded * 100 / evt.total); 
 console.log("正在提交."+percentComplete.toString() + '%'); //在控制台打印上传进度
 }
 }, false);
 
 return xhr;
 }
 
 });
}
/**
 * 将以base的图片url数据转换为Blob
 * @param urlData
 * 用url方式表示的base图片数据
 */
function convertBaseUrlToBlob(urlData){
 
 var bytes=window.atob(urlData.split(',')[1]); //去掉url的头,并转换为byte
 
 //处理异常,将ascii码小于0的转换为大于0
 var ab = new ArrayBuffer(bytes.length);
 var ia = new Uint8Array(ab);
 for (var i = 0; i < bytes.length; i++) {
 ia[i] = bytes.charCodeAt(i);
 }
 return new Blob( [ab] , {type : 'image/png'});
}

文档

jst将base编码的图片转换为file并提交

jst将base编码的图片转换为file并提交:直接提交base编码图片数据,过大的话后台会出现转发错误问题。一个不错的解决方式就是将base编码的图片数据转换为Blob(与File相似)并添加到form中提交。下面是代码:/** * @param baseCodes * 图片的base编码 */ function su
推荐度:
标签: 提交 File 转换为
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top