繁体   English   中英

java.lang.ClassCastException:org.primefaces.model.DefaultUploadedFile无法转换为java.io.File

[英]java.lang.ClassCastException: org.primefaces.model.DefaultUploadedFile cannot be cast to java.io.File

我正在使用primefaces上传文件组件,一切正常:我需要检索上传文件的问题:

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

上传的文件具有DefaultUploadedFile类型类,但我需要File类类型。 我尝试投射它,但是出现投射错误,所以我找到了另一个解决方案,它正在使用DefaultUploadedFile URI创建文件

selectedFile=new File(Uri) 

但我找不到从event.getFile()检索它的方法

任何想法将不胜感激

我认为您不能将ist强制转换为java.io.File getFile()方法返回的实例的类型为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

在您的方法中,从UploadedFile获取InputStream InputStream可以很容易地拥有File 示例( 如何在Java中将InputStream转换为File

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM