我们的简单文件上传系统遇到了一个奇怪的问题。
设置是:Spring 3.2.2,commons fileupload 1.3,commons io 2.4。我们实际上是直接从带有外部 Tomcat 7.0.40 的 Eclipse 运行的。它已经在 Mac OS X 10.8 和 10.6 上进行了测试。
这是代码:
public void saveFile(MultipartFile file, String description) {
System.out.println(file.getOriginalFilename());
System.out.println(file.getSize());
OutputStream out = new FileOutputStream("someFileName");
IOUtils.copy(file.getInputStream(), out);
out.flush();
out.close();
}
它输出正确的文件名和正确的文件大小!
现在,当将文件写入磁盘时,它会生成一个 0 字节的文件。这尤其发生在.docx
文件上(大约 95% 的情况下)。它似乎取决于文件。图像和 PDF 文档似乎总是有效。
没有例外或任何其他提示。调试器说InputStream
是空的(不是null
,只是空的)。
对这种行为有什么解释吗?