我想从客户端向服务器发送多个图像文件为此我在我的应用程序中编写代码,但它只会发送一个图像。在客户端应用程序中有一个框架,在服务器应用程序中也有一个框架来启动/停止服务器。
还有一个问题是当客户端应用程序发送图像文件然后这个图像文件显示在服务器计算机上但是当我尝试打开这个图像文件然后什么都没有但是当我关闭服务器应用程序(服务器框架)然后我能够看到图片。
代码:
客户网站:
public void sendPhotoToServer(String str){ // str is image location
try {
InputStream input = new FileInputStream(str);
byte[] buffer=new byte[1024];
int readData;
while((readData=input.read(buffer))!=-1){
dos.write(buffer,0,readData); // dos is DataOutputStream
}
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}
在服务器端,此代码正在运行到线程中:
public void run() {
while (true) {
try {
byte[] buffer = new byte[8192];
fis = new FileOutputStream("C:\\"+(s1++)+".jpg"); // fis is FileOutputStream
while ((count = in.read(buffer)) > 0){ //count is a integer and 'in' is InputStream
fis.write(buffer, 0, count);
fis.flush();
}
} catch (Exception e) {}
}
}
问题:
- 只有第一张图像是由客户端发送的复制。
- 只有当我关闭服务器应用程序时,我才能看到这个图像。
也不例外,我在其他类中连续调用sendPhotoToServer方法将所有图像文件发送为:
if (photoSourcePath != null) {
clientClass.sendPhotoToServer(photoSourcePath+"\\"+rowData.get(5));
}