【发布时间】:2013-06-17 22:59:20
【问题描述】:
我们的简单文件上传系统遇到了一个奇怪的问题。
设置是: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,只是空的)。
对这种行为有什么解释吗?
【问题讨论】:
-
我遇到了类似的问题,你解决了吗?
标签: spring spring-mvc file-upload apache-commons-fileupload apache-commons-io