public void handleFileUpload(FileUploadEvent event) {
ExternalContext extContext = FacesContext.getCurrentInstance().getExternalContext();
File result = new File(extContext.getRealPath("//admin//images") + "//" + event.getFile().getFileName());
// File result = new File("D:\\Netbeans Project\\mcGrawLibPro\\mcGrawLibPro-war\\web\\item", event.getFile().getFileName());
File bg = new File(extContext.getRealPath("//admin//images")+"//macback.png");
try {
bg.renameTo(new File(extContext.getRealPath("//admin//images")+"//bg.png"));
File f1 = new File(extContext.getRealPath("//admin//images") + "//macback.png");
result.renameTo(f1);
//System.out.println(f1);
System.out.println(result);
FileOutputStream fileOutputStream = new FileOutputStream(result);
byte[] buffer = new byte[BUFFER_SIZE];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
FacesMessage msg = new FacesMessage("OK",
event.getFile().getFileName() + " was upload.");
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Can't upload!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
我的问题是,当我上传的图片类型PNG如aaa.png,它可以在服务器上载,但它不能重命名,上传aaa.png后,我重新上传这张照片( aaa.png)它可以更改名称,但它有2个文件,一个是aaa.png,另一个是macback.png重命名文件
我的代码有什么问题?
谢谢!
所以你最终只想用'bg.png'和'macback.png'完全没有'aaa.png',对吗? – BeemerGuy 2010-11-10 04:58:47
你好Beemer,我想重命名文件上传aaa.png到macback.png,下面的代码我只是测试它可以从服务器上的图像更改为另一个名称,然后更改图像上传到macback.png。如果我工作的很好,我会在服务器上删除bg.png – MYE 2010-11-10 14:32:48