我试图在Android客户端上的文件中写入一个字节[](加密文本),然后将此文件发送到服务器(使用HTTP)。该文件在移动设备中正确创建,但是当它存储在服务器端时,它会创建一个0字节的文件。在文件中写入字节[]对象并将文件发送到服务器
这里是Android的代码写入文件
File file = new File(getExternalCacheDir(), "index.txt");
FileOutputStream fout = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(encIndex);
oos.close();
这里是servlet代码读取和文件
String fileName = request.getHeader("fileName");
File saveFile = new File(SAVE_DIR + fileName);
// opens input stream of the request for reading data
InputStream inputStream = request.getInputStream();
// opens an output stream for writing file
FileOutputStream outputStream = new FileOutputStream(saveFile);
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead;
System.out.println("Receiving data...");
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
System.out.println("Data received.");
outputStream.close();
inputStream.close();
System.out.println("File written to: " + saveFile.getAbsolutePath());
file.close();
代码存储客户端到服务器的文件发送
File uploadFile = new File(filePath, fileName);
URL url = new URL(UPLOAD_URL);
HttpURLConnection httpConn = (HttpURLConnection)url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoOutput(true);
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("fileName", uploadFile.getName());
OutputStream outputStream = httpConn.getOutputStream();
FileInputStream inputStream = new FileInputStream(uploadFile);
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
由于某些原因,我无法使用套接字。 Android不显示任何错误。该服务器显示错误的是,该文件是空的/我就是在空文件操作
encIndex是byte [],BUFFER_SIZE是int值为4096,SAVE_DIR是路径,我正在存储我的文件... –
在服务器端记录读取内容。看不到任何将文件发送到服务器的代码。 –
添加客户端到服务器文件发送代码 –