我写的是,客户端发文件到服务器的同时服务器转发给指定客户端,
现在的问题是,怎么实现象QQ那样的发文件,发送方发文件后,接受方收到一个提示,接受还是取消,选接受的话,调个文件选择器对话框然后保存,选取消退出,请问那东西怎么实现的??

解决方案 »

  1.   

    public class Upload {
    public final static boolean DEBUG = true; // 调试用
    private static int BUFFER_SIZE = 8096; // 缓冲区大小
    @SuppressWarnings("unchecked")
    private Vector vDownLoad = new Vector(); // URL列表
    @SuppressWarnings("unchecked")
    private Vector vFileList = new Vector(); // 下载后的保存文件名列表public void resetList() {
        vDownLoad.clear();
        vFileList.clear();
    }
    @SuppressWarnings("unchecked")
    public void addItem(String url, String filename) {
    vDownLoad.add(url);
    vFileList.add(filename);
    }
     public void downLoadByList() {
     String url = null;
     String filename = null;
    // 按列表顺序保存资源
     for (int i = 0; i < vDownLoad.size(); i++) {
     url = (String) vDownLoad.get(i);
         filename = (String) vFileList.get(i);
    try {
               saveToFile(url, filename);
    } catch (IOException err) {
    if (DEBUG) {
            System.out.println("资源[" + url + "]下载失败!!!");
        }
     }
        }
    if(DEBUG){
    System.out.println("下载完成!!!");
     }
     }
    /**
     * * 将HTTP资源另存为文件 * *
     * 
     * @param destUrl
     *            String *
     * @param fileName
     *            String *
     * @throws Exception
     */
     public void saveToFile(String destUrl, String fileName) throws IOException {
     FileOutputStream fos = null;
     BufferedInputStream bis = null;
         HttpURLConnection httpUrl = null;
         URL url = null;
         byte[] buf = new byte[BUFFER_SIZE];
     int size = 0;
    // 建立链接
        url = new URL(destUrl);
        httpUrl = (HttpURLConnection) url.openConnection();
        // 连接指定的资源
        httpUrl.connect();
        // 获取网络输入流
        bis = new BufferedInputStream(httpUrl.getInputStream());
        // 建立文件
        fos = new FileOutputStream(fileName);
     if (this.DEBUG)
     System.out.println("正在获取链接[" + destUrl + "]的内容...\n将其保存为文件[" +fileName + "]");
    // 保存文件
     while ((size = bis.read(buf)) != -1)
     fos.write(buf, 0, size);
    fos.close();
     bis.close();
    httpUrl.disconnect();
    }
    /**
     * * 将HTTP资源另存为文件 * *
     * 
     * @param destUrl
     *            String *
     * @param fileName    
     * 
     *            String *
     * @throws Exception
     */
     public void saveToFile2(String destUrl, String fileName) throws IOException {
     FileOutputStream fos = null;
     BufferedInputStream bis = null;
     HttpURLConnection httpUrl = null;
     URL url = null;
     byte[] buf = new byte[BUFFER_SIZE];
     int size = 0; 

    // 建立链接
     url = new URL(destUrl);
     httpUrl = (HttpURLConnection) url.openConnection();// String authString = "username" + ":" + "password";
     String authString = "50301" + ":" + "88888888";
     String auth = "Basic " +
     new sun.misc.BASE64Encoder().encode(authString.getBytes());
     httpUrl.setRequestProperty("Proxy-Authorization", auth);

    // 连接指定的资源
     httpUrl.connect();
    // 获取网络输入流
     bis = new BufferedInputStream(httpUrl.getInputStream());
    // 建立文件
    fos = new FileOutputStream(fileName);

     if (this.DEBUG)
     System.out.println("正在获取链接[" + destUrl + "]的内容...\n将其保存为文件[" +fileName + "]");
    // 保存文件
    while ((size = bis.read(buf)) != -1)
    fos.write(buf, 0, size);
    fos.close();
    bis.close();
     httpUrl.disconnect();
     }
     /**
     * * 设置代理服务器 * *
     * 
     * @param proxy
     *            String *
     * @param proxyPort
     *            String
     */ public void setProxyServer(String proxy, String proxyPort) {
    // 设置代理服务器
     System.getProperties().put("proxySet", "true");
         System.getProperties().put("proxyHost", proxy);
         System.getProperties().put("proxyPort", proxyPort);
     }
     public void setAuthenticator(String uid, String pwd) {
    // Authenticator.setDefault(new MyAuthenticator());
     }
     
     public static void main(String[] args){
     Upload upload = new Upload();
     try {
     String sourceName = "load.mp3"; 
     //
    //upload.saveToFile("http://music.hcwang.cn/music/10716/4.Wma", "./4.Wma");
    upload.saveToFile("http://192.168.0.215/wc/load.mp3", "./"+sourceName+"");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    //
     }