java - 如何将上传的图像保存到我的C盘

时间:2011-12-14 18:25:21

标签: java myfaces

这是我在这里尝试完成的https://stackoverflow.com/questions/7313922/uploading-files-ussing-myfaces-tomahawk-jsf-2-0

的后续行动

我设法将图像作为UploadedFile对象获取,但我似乎无法将其保存到磁盘。我想在本地保存它(例如在C:\Temp中),这样当我运行我的应用程序时,我可以从我的桌面上传文件(例如test.jpg)并将其保存在服务器上(例如,在C:\Temp)。

我的bean非常简单:

import org.apache.myfaces.custom.fileupload.UploadedFile;
public class PatientBB {  

private UploadedFile uploadedFile; 

public UploadedFile getUploadedFile(){
return this.uploadedFile; 
}  
.
public void setUploadedFile(UploadedFile uploadedFile){     
this.uploadedFile = uploadedFile; 
} 
.
public String actionSubmitImage(){
//This is th part I need help with. how do I save it in my C?
}

我非常感谢所有的帮助,谢谢!

2 个答案:

答案 0 :(得分:7)

据我所知,根据javaDoc,你应该可以做到

uploadedFile.getInputStream();

然后将数据从那里推送到FileOutputStream

的伪:

 InputStream is = uploadedFile.getInputStream();
 byte[] buffer = new byte[uploadedFile.getLength()); //This can be more space-efficient if necessary
 is.read(buffer);
 File f = new File("C:\\tmp\\" + uploadedFile.getFilename());
 f.createNewFile();
 FileOutputStream fos = new FileOutputStream(f);
 fos.write(buffer);

这有意义吗?这就是你要找的东西吗?

答案 1 :(得分:-1)

可以使用java FileUtils API将上传的文件复制到指定位置。

File theFile = new File("C:\temp\filename");

例如:FileUtils.copyFile(upload, theFile);