使用applet文件上传,怎么样都接收不到东西
skyxj 2004-08-20 05:21:52 客户端程序是applet,服务段程序是servlet,功能为进行文件上传,按照现在的byte[]类型发送发送文件时,即outputToServlet.writeObject(byteFile),客户端收不到任何东西;如果采用outputToServlet.writeObject("ssssssss")发送String类型,服务器端能正常接收消息,不知道如何使用applet上传文件?
程序的代码如下
客户端程序:
String queryString = "/filedata/AppletUploadServlet?func=doUpload";
URL url = getCodeBase();
URLConnection connect;
try {
connect = (new URL(url, queryString)).openConnection();
connect.setDoInput(true);
connect.setDoOutput(true);
connect.setDefaultUseCaches(false);
connect.setUseCaches(false);
connect.setRequestProperty("Content-Type", "application/octet-stream");
ObjectOutputStream outputToServlet = new ObjectOutputStream(connect.getOutputStream());
byte [] byteFile = new byte[alFile.size()];
try {
fis = new FileInputStream((String)alFile.get(i));
dis = new DataInputStream(fis);
byteFile[i] = dis.readByte();
} catch(IOException e) {
}
outputToServlet.writeObject(byteFile);
outputToServlet.flush();
outputToServlet.close();
connect.getInputStream();
} catchmedURLException ue) {
} catchption ioe) {
}
服务段程序:
ObjectInputStream in = new ObjectInputStream(req.getInputStream());
int totalBytes = req.getContentLength();
byte [] binArray = new byte[totalBytes + 2];
int readBytes = 0;
while(in.read(binArray) != -1) {
}
DataOutputStream dos = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("c:\\aaa")));
dos.write(binArray);
dos.flush();
dos.close();
in.close();