base64 长度过大,ajax 上传时, 后台接收为 null

本贴最后更新于 2187 天前,其中的信息可能已经渤澥桑田

废话不多说,直接上代码

$.ajax({
    url: url,
    type: "POST",
    async: true,
    data: '{data:"'+img+'",fileType:"fileType"}',//{data:$(toUploadObj.img).attr("src")},
    processData: false,//用于对data参数进行序列化处理 这里必须false
    contentType: false, //必须
    success: function (res) {
 });

即将参数传递的改为字符串,直接放入 body,后台使用 request.getReader()读出字符串之后解析.

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();
}

JSONObject jobject = null;
	
jobject=JSONObject.fromObject(sb.toString());
....

另附 CMYK 在转化中不识别问题,在 maven 中加入库

<!-- cmyk格式图片转换 -->
    <dependency>
        <groupId>com.twelvemonkeys.imageio</groupId>
        <artifactId>imageio-jpeg</artifactId>
        <version>3.3</version>
    </dependency>
    <dependency>
        <groupId>com.twelvemonkeys.imageio</groupId>
        <artifactId>imageio-tiff</artifactId>
        <version>3.3</version>
    </dependency>

最后吐槽一句,哪个娃儿说的 postSize 设为 0 的,卵用没有,还会造成所有的 request 取不到参数.坑翻不少人吧.

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1090 引用 • 3467 回帖 • 297 关注
  • Base64
    9 引用 • 14 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...