这是一个非常基本的问题,但它让我抓耳挠腮了 4 个小时,现在我放弃了。 为了提供尽可能多的信息,我可以说这是一个 java webapp 项目,在 ubuntu 11.04 下使用 zk 5.0.8 作为前端+spring+hibernate+maven,并将 basedir 权限设置为 777。
尝试了文件上传,一切似乎都正常,并且我确信我的代码是正确的,但它不起作用。
这是代码
private boolean saveUploadledFile(Media uploadedMedia, String basedir) {
String code = codeGenerator.generateContentCode(15);
String FINAL_DIR_PATH = basedir + "/"+"Racing" + "/" + code;
String FINAL_FILE_PATH = FINAL_DIR_PATH + "/" + uploadedMedia.getName();
alert(FINAL_DIR_PATH);
try {
File finaldir = new File(FINAL_DIR_PATH);
//apache commons
FileUtils.forceMkdir(finaldir);
alert("Size equals" + uploadedMedia.getByteData().length);
fout = new FileOutputStream(new File(FINAL_DIR_PATH+"/"+addContentWindow1$txtName.getText()+".jar"));
//apache commons
IOUtils.copy(uploadedMedia.getStreamData(), fout);
} catch (IOException e) {
throw new RuntimeException(e);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
try {
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(fout);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return false;
}
new FileOutputStream 总是抛出异常。因此,如果我无法指定要保存的位置如何保存文件。有任何想法吗?我故意输出文件的大小以确保存在文件。任何人都可以透露一些信息吗?感谢您阅读本文
实际的异常是
Caused by: java.io.FileNotFoundException: /joseph/mbcs/Games/Racing/20314/somthing.jar (is a directory)
最佳答案
我可能错了,但这部分代码不是有问题吗?
if (!finaldir.exists()) {
if (!finaldir.canWrite())
finaldir.mkdirs(); // this creates no directory no error
else
alert("Cannot write to the directory" );
}
如果该目录不存在,则检查是否不能在那里写入,然后创建它,否则输出错误。我认为 !
是错误的。
可能是您的问题的原因,但也可能不是。
关于java - 创建FileOutputStream对象时由: java. io.FileNotFoundException :/path/somthing. jar(是目录)引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926391/