`
y806839048
  • 浏览: 1118417 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ajax post 数据过长导致后台属性驱动接受不到值的处理

    博客分类:
  • Ajax
阅读更多

//ajax post 数据过长导致后台属性驱动接受不到值的处理

 

参数中有%%这种是由于encode了,需要decode就正常

 

 

  var jsonshuzu={"imgName":"111.png","bluckname":"telesale-weixin","imgType":"identityFrontPicUrl","orderNo":"A001","imgSource":"additional"};

  // 图片选择改变事件

  function inputchange(tag){

  alert(1);

  var inputTag = 'file' + tag;

  var file = document.getElementById(inputTag);

  if(window.FileReader){//chrome,firefox7+,opera,IE10+

  alert(2);

  oFReader = new FileReader();

  oFReader.readAsDataURL(file.files[0]);

  oFReader.onload = function (oFREvent) {

  alert(3);

  uploadImage(oFREvent.target.result,tag);

  alert(4);

  // oFREvent.target.result  结果就是base64的数据

  };

  }

  }

  // 图片上传

  var jsonshuzu={"imgName":"111.png","bluckname":"telesale","imgType":"identityFrontPicUrl","orderNo":"001"};

  function uploadImage(imageData,tag){

  alert(5);

  $.ajax({

  url: '${ctx}/itm/weixin/additional1.action',

  data: {

  imgData: imageData ,// 图片数据流

  jsonsImg:JSON.stringify(jsonshuzu)

  },

//  processData : false,

//  contentType : false,

  dataType: 'json',

  type: 'post',

  success: function(data) {

  var dataJsonObject = JSON.parse(data);

  if (dataJsonObject.returnCode == 'A0001' ) {

  var img = '#imgsrc';

  var imgurl=dataJsonObject.result.imgUrl;

  var fileNameForm=dataJsonObject.result.fileNameForm;

  $(img).attr('src','${ctx}/itm/weixin/getObject.action?imgurl='+imgurl);

  $("#fNameForm").val(fileNameForm);

  }else{

  alert('图片上传失败!');

  }

  },

  error: function(xhr, type, errorThrown) {

  alert('网络异常,请稍后再试!');

  }

  });

  }

 

 

 

public String additional1() throws Exception{

//InputStream is = new FileInputStream(fileName.getPath());

InputStream sbs = null;

System.currentTimeMillis();

//获取ajax传过来的json参数

imgInfoReq=(ImgInfoReq)JSONObject.toBean(JSONObject.fromObject(jsonsImg),ImgInfoReq.class);

HttpServletRequest request = ServletActionContext.getRequest();

request.setCharacterEncoding("UTF-8");

StringBuilder sb = new StringBuilder();

try(BufferedReader reader = request.getReader();) {

char[] buff = new char[1024];

int len;

while((len = reader.read(buff)) != -1) {

sb.append(buff,0, len);

}

}catch (IOException e) {

e.printStackTrace();

}

if(imgInfoReq==null){

String tre = this.splitString(sb.toString(), "jsonsImg");

String dre = URLDecoder.decode(tre,"UTF-8");

imgInfoReq=(ImgInfoReq)JSONObject.toBean(JSONObject.fromObject(dre),ImgInfoReq.class);

}

//形成新的随机图片名称

fileNameForm = imgInfoReq.getImgName() + System.currentTimeMillis();

fileNameForm = Base64Utils.byteArrayToBase64(fileNameForm.getBytes());

fileNameForm=UUID.randomUUID().toString().replaceAll("-", "");

String endpfrx = imgInfoReq.getImgName().substring(imgInfoReq.getImgName().lastIndexOf("."));

fileNameForm = fileNameForm + endpfrx;

//fileNameForm="1.JPG";

//获取图片流

 

if(imgData==null){

//JSONObject jobject = JSONObject.fromObject("{"+sb.toString()+"}");

 

String tmg = this.splitString(sb.toString(), "imgData");

String dmg = URLDecoder.decode(tmg,"UTF-8");

imgData = dmg;

logger.info("======图片保存开始imgData====="+imgData);

}

 

byte[] imgd=  generateImage(imgData.substring(imgData.indexOf(",")+1));

        //保存图片

JSONObject finalJSONObject = new JSONObject();

logger.info("======图片保存开始=====");

if (imgData != null) {

sbs = new ByteArrayInputStream(imgd);

Minoperator.saveObject(sbs, imgInfoReq.getBluckname(), imgInfoReq.getOrderNo()+"/"+fileNameForm);

sbs.close();

}

else{

//Minoperator.saveObject(is,fileNameFileName);

}

 

}

 

 

public String splitString(String str, String temp) {
   String result = null;
   if (str.indexOf(temp) != -1) {
      if (str.substring(str.indexOf(temp)).indexOf("&") != -1) {
         result = str.substring(str.indexOf(temp)).substring(str.substring(str.indexOf(temp)).indexOf("=") + 1,
               str.substring(str.indexOf(temp)).indexOf("&"));

      } else {
         result = str.substring(str.indexOf(temp)).substring(str.substring(str.indexOf(temp)).indexOf("=") + 1);

      }
   }
   return result;
}
分享到:
评论

相关推荐

    jquery获取后台数据生成下拉框

    本文将深入探讨如何使用jQuery结合Ajax技术从后台获取数据,并动态生成下拉选择框(Dropdown List)。 首先,理解jQuery的核心概念至关重要。jQuery通过一个简洁的语法,使得JavaScript代码更易读写,例如,`$...

    简易后台服务post/get

    AJAX允许网页在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容,常用于实现动态交互。 8. **JavaScript文件**:项目中的`js`文件可能包含了前端与后端交互的JavaScript代码,如使用fetch API或者jQuery...

    自己写个后台管理,用到了ajax

    标题中的“自己写个后台管理,用到了ajax”意味着这篇博客或者项目是关于构建一个自定义的后台管理系统,并且在实现过程中使用了Ajax技术。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的...

    运用Ajax实现无跳转的数据交换

    在"运用Ajax实现无跳转的数据交换"这个课程作业中,你需要使用JavaScript与Servlet来实现在网页不刷新的情况下,与服务器进行数据交互。这个过程中,JavaScript主要负责客户端的处理,而Servlet则作为服务器端的组件...

    vue使用ajax获取后台数据进行显示的示例

    AJAX 是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。 首先,为了使用 Vue.js,我们需要在 HTML 文件中引入 Vue.js 的库。在本例中,我们引入了 `vue.min.js` 和 `vue-resource.min.js`。`...

    Ajax Test Ajax Test

    在网页应用中,Ajax允许后台与服务器进行数据交换,而不会打断用户的操作流程,提升了用户体验。 ### 1. 基本概念 - **异步通信**:Ajax的核心是XMLHttpRequest对象,它使得JavaScript可以向服务器发送异步请求,...

    动态ajax从数据库取数据建立菜单

    动态Ajax技术是从服务器获取数据并在不刷新整个网页的情况下更新页面内容的一种方法,它极大地提升了用户体验。在本场景中,我们讨论的是如何利用Ajax从数据库获取数据来动态构建菜单。这通常涉及到前端JavaScript、...

    解析xml,ajax

    Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,通过在后台与服务器进行少量数据交换,可以在不重新加载整个网页的情况下更新部分网页内容。Ajax的核心是JavaScript对象XMLHttpRequest,它允许...

    AJAX技术Ajax.7z

    2. **JavaScript**:JavaScript是AJAX的驱动力,用于创建和控制XMLHttpRequest对象,发送请求到服务器,并处理服务器返回的数据。 3. **XML**:尽管名字中含有XML,但实际传输的数据并不一定是XML,也可以是JSON、...

    Ajax基础入门简介

    当用户进行操作时,Ajax引擎会在后台发送请求,服务器处理后仅返回所需数据,然后JavaScript更新DOM,实现局部刷新,用户界面保持活跃。 **Ajax的应用范围** 1. **局部刷新**:例如,在表格中编辑数据时,只更新...

    ajaxsample

    - **JavaScript**:Ajax的主要驱动力是JavaScript,通过JavaScript来创建和控制XMLHttpRequest对象,发送和接收数据。 - **XMLHttpRequest对象**:它是Ajax的核心,负责与服务器建立连接,发送请求并处理响应。 -...

    论文研究-基于AJAX的Web无刷新页面快速更新数据方法.pdf

    当需要发送请求到服务器时,浏览器会异步地向服务器提交数据(例如使用POST方法),然后服务器处理请求后将结果返回给浏览器。这些结果可以是HTML片段、XML文档、JSON数据或者纯文本,而AJAX引擎使用DOM来更新当前...

    ajax控制div窗口显示和隐藏

    在网页开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。本主题主要关注如何使用Ajax来控制div窗口的显示和隐藏,...

    ajax 网页特效 实例教程

    `XMLHttpRequest`对象是Ajax的基础,它提供了一种在后台与服务器交换数据并更新部分网页的能力。以下是一些关键的方法和属性: 1. **open()**:初始化一个请求,参数包括请求类型(GET或POST)、URL和是否异步。 2....

    Ajax参考手册.rar

    1. **JavaScript**: 作为客户端的主要驱动力,JavaScript负责处理用户的交互事件,发起Ajax请求,并对服务器返回的数据进行解析和展示。 2. **XMLHttpRequest对象**: 这是Ajax的基础,它允许JavaScript在后台与...

    Ajax Jsp 连接MySQL数据库

    在这个“Ajax Jsp 连接MySQL数据库”的主题中,我们将深入探讨如何在JSP页面上利用Ajax技术与后台MySQL数据库进行交互,同时处理多个Ajax请求。 首先,让我们了解基本概念。Ajax的核心是通过JavaScript向服务器发送...

    ajax中文帮助文档

    - **JavaScript**:Ajax的驱动力,创建和控制请求以及处理响应。 - **XML/JSON**:数据交换格式,用于传输数据,JSON现更受欢迎,因为它更简洁且易于解析。 **2. Ajax工作流程** 1. **创建XMLHttpRequest对象**:...

    Ajax案例(JSP)

    2. **JavaScript**:Ajax的主要驱动力是JavaScript,它创建并管理Ajax请求,处理服务器返回的数据,并更新DOM(Document Object Model)来显示结果。 3. **XMLHttpRequest对象**:JavaScript通过XMLHttpRequest对象...

    Ajax完全自学手册教程

    Ajax的核心是JavaScript异步通信,它利用浏览器提供的XMLHttpRequest对象来实现后台与服务器端的数据交换。 ### 一、Ajax的基础概念 1. **异步通信**:Ajax的最大特点就是异步,即在用户界面不被阻塞的情况下,向...

Global site tag (gtag.js) - Google Analytics