请问,服务器端使用OutputStream向客户端写文件,可以实现多文件传输吗?就是一次写入多个文件。谢谢!!

解决方案 »

  1.   

    不可以,客户端一次性只允许接收一个文件。你可以下载Zip文件、又或者使用ActiveX控件
      

  2.   

    我给你出招 你把需要下载的文件在服务器端 用java.util.zip.*;下面的类 压缩一下
      直接把你新压缩的zip文件 输出给客服端
     客服端直接弹出下载的页面 下载这个zip 让用户自己去解压
      

  3.   

    File file = new File("D:\\test.zip");
         if(!file.exists()){
         file.mkdirs();
         file.createNewFile();
         }
         FileOutputStream f= new FileOutputStream(file);
         CheckedOutputStream cos = new CheckedOutputStream(f,new Adler32());
         ZipOutputStream zos = new ZipOutputStream(cos);
         String[] fileNames =new String[]{"D:\\dddd.hh","D:\\test.txt"};
         BufferedOutputStream out = new BufferedOutputStream(zos);
         for(String fileName:fileNames){
         System.out.println("开始压缩:"+fileName);
         BufferedReader in = new BufferedReader(new FileReader(fileName));
         zos.putNextEntry(new ZipEntry(fileName));
         int c;
         while((c=in.read())!=-1){
         out.write(c);
         }
         in.close();
         out.flush();
         }
         out.close();
         System.out.println("---  end ---");这是压缩文件的代码 你参考一下
      

  4.   

    文件名乱码问题可以由
    name = new String(name.getBytes(), "ISO8859-1");这样转换一次就可以了。
    文件多和大的时候就没有办法了,如果你想做得好的话就把下载分成两步
    第一步先生成zip临时文件,客户端可以显示进度条(File.createTempFile创建)
    第二步才是下载临时zip文件,下载完后删除临时文件