各位高手,我用java写了个ftp上传的例子,是利用分析web页面提交过来的数据流
然后将文件部分分离,写到byte变量里,然后用TelnetOutputStream 的 write的 方法写到服务器上。但是刚开始怎么也写不进去,每次上传完了看文件大小都是0kb;后来我改了方法,循环将byte变量写到TelnetOutputStream 里,每次只写1kb
这样才解决了文件上传的问题不过现在又出现了新问题,就是只要是上传压缩文件 ,那么打开上传后的压缩文件都会报
“不可预料的档案文件末端” 这个错误。请问各位高手该如何解决,我写byte变量的代码如下:
         /*
              连接 ftp .............
         */        ftpclient.binary();
        TelnetOutputStream ftpOut = ftpclient.put(destination);
        System.out.println(sourceData.length);
        
        int bufsize=1000;
        byte[] buf=new byte[bufsize];
        int beginpos=0;
        int endpos=0;
        //每次按buffsize写字节,只到写满为止
        do{          if(endpos+bufsize>sourceData.length){//如果到达文件末端
            endpos+=(sourceData.length%bufsize);
            bufsize=sourceData.length%bufsize;//取剩余文件的大小
          }else{
            endpos+=bufsize;//否则取bufsize大小
          }
           //将bufsize大小的文件写到服务器上
          for(int i=0;i<bufsize;i++){
            buf[i]=sourceData[beginpos+i];
          }
          ftpOut.write(buf);
          beginpos+=bufsize;
        }while(endpos<sourceData.length);
        
        ftpOut.close();