我有一个Web应用程序,我有几个动作。其中一个操作将一些图像写入脱离上下文的文件夹,让我们说:
/home/user/images/subfolder1/image.jpg
现在,另一个操作将该图像复制到位于图像内的另一个文件夹,但是使用不同的扩展名,请说:
/home/user/images/subfolder2/subsubfolder2-1/image.png
现在,第一张图片来自一张表格,第二张图片来自保存第一张图片的路径,两张图片都采用相同的方法编写:
InputStream in = new FileInputStream(origen);
OutputStream out = new FileOutputStream(destination.getAbsolutePath());
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
webapp创建每个文件夹,包括" subfolder2 / subsubfolder2-1 /"使用mkdirs(),如果它们不存在。
这在我使用apache tomcat 6.0.43运行ubuntu 14.04的测试环境中工作得很好,但是,在生产时,是cmos 6(或6.5),相同的apache tomcat版本,图像被创建,但是没有数据被写入它,我的意思是,是一个image.png文件被创建,但它的大小是0.所有文件夹都有正确的权限,drwxrwxrwx,但image.png由于某种原因,缺少它们,只有rw。
导致这种情况的原因是什么?
答案 0 :(得分:1)
由于某些未知原因,我只是改变了将文件写入的方式:
InputStream in = new FileInputStream(origen);
OutputStream out = new FileOutputStream(destination.getAbsolutePath());
int byteRead = 0;
byte[] buffer = new byte[8192];
while ((byteRead = in.read(buffer, 0, 8192)) != -1){
out.write(buffer, 0, byteRead);
}
它运作正常,不知道背后的原因。