swing写了个界面,选取几个文件批量上传到服务器上,我想是把这几个文件先打包成一个上传到服务器,然后服务器再解包,但是具体的还没想清楚,有兄弟有相关的例子提供下么,或者提供点别的思路也可以,先谢谢各位了

解决方案 »

  1.   

    Hi
    Swing,大体的思路是选中的文件,用一个set记录它们的full name。
    然后利用zip classes完成压缩(你需要创建临时文件...)
    参考这个文章:
    http://blog.csdn.net/OnlyOfMe/archive/2008/10/07/3027827.aspx然后就可以上传了,上传要看你是什么协议了,HTTP POST还是FTP。
    到时候再选择库呗,Java总是比较容易的。
      

  2.   

    一个一个来吧。
    zip 打包也要时间啊,客户都等的不耐烦了
      

  3.   


    http://www.gisbox.cn/thread-602-1-1.html
      

  4.   

    做过一个和你类似的实现,是把多个xml文件打包,上传到服务器,再由服务器读取压缩包文件,并把文件内容保存到数据库。打包是直接JDK里面的ZIP,你自己看下。上传的主要部分代码:
    try
            {
                FileInputStream fileInputStream = new FileInputStream(new File(exsistingFileName));//exsistingFileName打包后的文件名
                URL url = new URL(urlString);  //urlString是网页路径,这个路径负责解压后的文件处理。
                conn = (HttpURLConnection) url.openConnection();
                conn.setDoInput(true);
                conn.setDoOutput(true);
                conn.setUseCaches(false);
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Connection", "Keep-Alive");
                conn.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary);
                dos = new DataOutputStream(conn.getOutputStream());
                dos.writeBytes(twoHyphens + boundary + lineEnd);
                dos.writeBytes("Content-Disposition: form-data; name=\"upload\";" + " filename=\"" + exsistingFileName + "\"" + lineEnd);
                dos.writeBytes(lineEnd);            // create a buffer of maximum size
                bytesAvailable = fileInputStream.available();
                bufferSize = Math.min(bytesAvailable, maxBufferSize);
                buffer = new byte[bufferSize];            bytesRead = fileInputStream.read(buffer, 0, bufferSize);            while (bytesRead > 0)
                {
                    dos.write(buffer, 0, bufferSize);
                    bytesAvailable = fileInputStream.available();
                    bufferSize = Math.min(bytesAvailable, maxBufferSize);
                    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
                }            dos.writeBytes(lineEnd);
                dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);            fileInputStream.close();
                dos.flush();
                dos.close();        }
            catch (MalformedURLException ex)
            {
                
            }
            catch (IOException ioe)
            {
                
            }
      

  5.   

    http://www.josdoc.com/html/qita/SWFUpload/rumenjiaocheng/200904/25-204.html