这是我在这里尝试完成的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?
}
我非常感谢所有的帮助,谢谢!
答案 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);