primefaces fileupload预览不工作,如果扩展名是大写
问题描述:
我想使用primefaces高级fileupload,但是我注意到,当扩展名是大写预览不起作用。以下是上传代码。primefaces fileupload预览不工作,如果扩展名是大写
<p:fileUpload fileUploadListener="${myController.handleFileUpload}"
mode="advanced" id="fileupload"
sizeLimit="2000000" uploadLabel="Add"
dragDropSupport="false" previewWidth="190"
label="Browse" style="width: 600px;height: 200px"
required="true" update="fileDescId"
allowTypes="/(\.|\/)(gif|jpe?g|png|GIF|JPG|JPEG|PNG)$/i"/>
搜索对谷歌并没有太大的产生,我发现,在allowTypes的末尾添加/i
,使正则表达式不区分大小写,但仍预览不显示。如果我点击上传,即使预览没有显示,也能成功上传,但我需要预览,因为需要描述图像。
答
我想出了你的问题。问题在文件\META-INF\resources\primefaces\fileupload\fileupload.js。预览图像是仅适用于PNG,JPG和GIF文件,为此有一个检查:
//preview
if($this.isCanvasSupported() && window.File && window.FileReader && $this.IMAGE_TYPES.test(file.name))
和模式:
IMAGE_TYPES: /(\.|\/)(gif|jpe?g|png)$/
正如你可以在这个地方看到缺乏标志不区分大小写验证。所以我手动添加此标志
IMAGE_TYPES: /(\.|\/)(gif|jpe?g|png)$/i
和预览开始工作,因为它应该。我检查了几次,清理并放了旗子,一切正常。 于是我发送了相应的patch。
谢谢@ 0x5a4d它的工作。希望Primefaces很快应用这个补丁,所以我不必重写它。 – 2014-11-13 07:16:18
修补程序在5.2版本中被接受! – 0x5a4d 2014-12-22 15:39:20