我写的是,客户端发文件到服务器的同时服务器转发给指定客户端,
现在的问题是,怎么实现象QQ那样的发文件,发送方发文件后,接受方收到一个提示,接受还是取消,选接受的话,调个文件选择器对话框然后保存,选取消退出,请问那东西怎么实现的??
现在的问题是,怎么实现象QQ那样的发文件,发送方发文件后,接受方收到一个提示,接受还是取消,选接受的话,调个文件选择器对话框然后保存,选取消退出,请问那东西怎么实现的??
调试欢乐多
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();
}
//
}