我在unix服务器上托管了我的java Web应用程序,文件在上下文路径中生成,压缩并下载到客户端。一旦我在Windows服务器中托管应用程序但在Centos中没有托管应用程序,我的代码就可以工作了。可能是什么问题?
我的拉链方法:
private byte[] zipFiles(File directory, String[] files) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
byte bytes[] = new byte[2048];
for (String fileName : files) {
FileInputStream fis = new FileInputStream(directory.getPath()
+ crbServlet.FILE_SEPARATOR + fileName);
BufferedInputStream bis = new BufferedInputStream(fis);
zos.putNextEntry(new ZipEntry(fileName));
int bytesRead;
while ((bytesRead = bis.read(bytes)) != -1) {
zos.write(bytes, 0, bytesRead);
}
zos.closeEntry();
bis.close();
fis.close();
}
zos.flush();
baos.flush();
zos.close();
baos.close();
return baos.toByteArray();
}
我的servlet Extract:
String[] files = f.list();
if (files != null && files.length > 0) {
byte[] zip = zipFiles(f, files);
ServletOutputStream sos = response.getOutputStream();
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment; filename=\"datafiles" + dt.getCurrentDate() + ".zip\"");
sos.write(zip);
sos.flush();
}
我在客户端下载的是具有垃圾字符的do文件。这是什么问题?