2012-09-28 76 views
0

我正在使用primefaces上傳文件組件一切工作正常: 我需要檢索上傳文件的問題:java.lang.ClassCastException:org.primefaces.model.DefaultUploadedFile不能轉換爲java.io.File

public void handleFileUpload(FileUploadEvent event) { 
    selectedFile=(File) event.getFile();  
    } 

上傳的文件具有DefaultUploadedFile類型類,但我需要File類型。我試着投它,但我得到施展的錯誤,所以我找到了另一個解決方案是研發使用DefaultUploadedFile URI

selectedFile=new File(Uri) 

的文件,但我不能找到一種方法,從event.getFile()

任何想法會找回不勝感激

+1

根本不應該對*臨時*上傳文件位置的文件感興趣(它將在之後被刪除!)。您應該在自己的固定位置**創建一個'File',並將上傳的文件的內容寫入它,您可以通過'getInputStream()'獲取它。 – BalusC

+0

@BalusC這就是我所做的感謝你:) – AmiraGL

回答

1

在你的方法得到InputStreamUploadedFile。並且從InputStream這是容易的方式有File。示例(How to convert InputStream to File in Java

public void handleFileUpload(FileUploadEvent event) {   
    UploadedFile selectedFile = event.getFile(); 
    InputStream inputStream = selectedFile.getInputstream();  
    ... 
} 
2

我不認爲你可以投IST到java.io.FilegetFile()方法返回的實例類型爲UploadedFile(與java.io.File完全無關)。但是,您可以使用getInputStream()方法,以檢索InputStream和讀取文件,像這樣:

UploadedFile file = event.getFile(); 
InputStream in = file.getInputStream(); 
// do something useful with the input stream... 

UploadedFile的接口提供了有用的方法來檢查上傳的文件。欲瞭解更多信息,請參閱:http://www.dzeek.net/javadoc/primefacesdocs/org/primefaces/model/UploadedFile.html

相關問題