![](/img/trans.png)
[英]Runtime Exception with Drools(java.lang.ClassCastException: org.drools.io.impl.ClassPathResource cannot be cast to org.drools.io.InternalResource)
[英]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.