不确定如何进行调试。我有一个行为不端的PrimeFaces fileUpload组件。
- 我正在使用PrimeFaces 3.5
- fileUpload组件进度条在文件上传过程中没有显示进度
- 文件上传成功
- 在IDE错误控制台中没有看到错误信息
- 也没有看到任何JavaScript错误在浏览器控制台
- 这确实在一段时间内工作(我继承了这个项目),试图通过我的git仓库查找更改的内容,但没有运气
这是我的组件代码
<div class="input input-file">
<p:fileUpload fileUploadListener="#{adminFilesController.handleFileUpload}"
mode="advanced"
process="@form"
multiple="true"
allowTypes="/(.|/)(gif|jpe?g|png|mp4|avi)$/"
/>
</div>
这是它与
对话的方法public void handleFileUpload(FileUploadEvent event) {
try {
String fileName = event.getFile().getFileName();
String fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
String randomId = UUID.randomUUID().toString();
String targetFileName = randomId + "." + fileExtension;
File targetFile = new File(this.tempPath, targetFileName);
this.uploadedFiles.put(targetFileName, fileName);
InputStream inputStream = event.getFile().getInputstream();
OutputStream out = new FileOutputStream(targetFile);
int read = 0;
byte[] bytes = new byte[20480];
try {
while ((read = inputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
inputStream.close();
out.flush();
out.close();
} catch (Exception e) {
logger.log(Level.SEVERE, "Can't write file", e.toString());
}
} catch (Exception e) {
logger.log(Level.SEVERE, "An exception occurred trying to process the handleFileUpload Event {0}", e.toString());
logger.log(Level.SEVERE, e.getMessage());
System.out.println(e.getStackTrace());
}
}
任何帮助调试或谷歌这将是非常感激的,当谈到JSF和PrimeFaces时,我有点湿了。
我终于弄明白了。我包括jQueryUI,它显然会与PrimeFaces碰撞。只要不包含它,进度条就会重新开始工作。我希望这能帮助到一些人!