自己解决了。在服务器端的编码换成:
A:
String s=new org.apache.axis.encoding.Base64().encode(e); //在axis.jar中
原来的:
B:
  String s=new sun.misc.BASE64Encoder().encode(buffer);
编码长度好象有问题。byte b = new byte[18815];
A得到的编码长度为25088;
B得到的编码长度为;25418;b的长度比较小的时候都是好的,到比较大的时候,B就有问题了。
不知道我的测试是否正确。

解决方案 »

  1.   

    public void code(String yhdm, String yhmm, String txbh) {    int piclength = 1;    for (int i=1; i<18815; i++)
      {     byte[] buffer = new byte[i];
        String s=new org.apache.axis.encoding.Base64().encode(buffer); //在axis.jar中
        String s1=new sun.misc.BASE64Encoder().encode(buffer);
        if (s.length() != s1.length())
        {
            System.out.println("出现长度不同:" + i);
            System.out.println("org.apache.axis.encoding编码长度为:"+s.length());
            System.out.println("sun.misc.BASE64Encoder编码长度为:"+s1.length());
            break;
        }
      }//
    出现长度不同:57
    org.apache.axis.encoding编码长度为:76
    sun.misc.BASE64Encoder编码长度为:78也就是说两中编码方式从数组长度为57开始以后编码得到的长度就不同了。